2
我有這樣的XML文件:C#XPATH選擇屬性,其中子節點內的文本是
<?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
>是「你好」,「你好」或什麼的。我有這個代碼,它的工作原理如下:
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");
不起作用。什麼是正確的模式來獲得我想要的?
表達= navigator.Compile( 「/ karteikasten/vokabel [ENG /項= '嗨']/@ stufe」);適用於我。你在什麼版本的.NET上? – Damian 2011-08-17 12:28:08