У меня есть этот XML-файл:
<?xml version="1.0" encoding="UTF-8"?>
<karteikasten>
<vokabel stufe="1">
<eng>
<item>Hi</item>
<item>Hello</item>
</eng>
<de>
<item>Hallo</item>
<item>Moin</item>
</de>
</vokabel>
<vokabel stufe="1">
<eng>
<item>Eating</item>
</eng>
<de>
<item>Essen</item>
<item>Mampfen</item>
</de>
</vokabel>
</karteikasten>
Я хочу выбрать атрибут "stufe", где <item
> - "Hi", "Hello" или что-то еще.У меня есть этот код, который работает:
XPathDocument document = new XPathDocument(@"C:\test.xml");
XPathNavigator navigator = document.CreateNavigator();
XPathExpression expression;
expression = navigator.Compile("/karteikasten/vokabel[eng/item]/@stufe");
XPathNodeIterator iterator = navigator.Select(expression);
while (iterator.MoveNext())
{
XPathNavigator navigator2 = iterator.Current.Clone();
Console.WriteLine(navigator2.Value);
}
Но это выбирает каждый "Stufe" во всем документе.
expression = navigator.Compile("/karteikasten/vokabel[eng/item='Hi']/@stufe");
Не работает.Какой правильный шаблон, чтобы получить то, что я хочу?