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