我的Xml看起来像这样
<root>
<parent name="Iam">
<child1 name="123">
<toy name="wii">
</toy>
</child>
</parent>
<parent name="Iam">
<toy name="wii">
</toy>
</parent>
<parent name="Sam">
<child1 name="999">
<toy name="xbox">
</toy>
</child>
</parent>
</root>
我需要选择与name="wii“与name="Iam”下的所有节点。可以是(以下)的直接子女或孙子女的通知
节点可以具有0或更多的基数。
我尝试将这个xpath /parent@name='Iam'/*/toy@name='wii'与XPathNavigator结合使用。
`XPathNodeIterator nodeIter = schemaNavigator.Select(schemaXPath, namespaceMgr);`
这显然是错误的,因为它失败了。
我需要xpath来选择0或更多基数之间的所有节点。
我不能更改XML的格式。
发布于 2012-08-21 15:24:09
这似乎适用于我:
string schemaXPath = "//parent[@name='Iam']//toy[@name='wii']";
XPathNavigator schemaNavigator = oXmlDocument.CreateNavigator();
XPathNodeIterator nodeIter = schemaNavigator.Select(schemaXPath, namespaceMgr);
while (nodeIter.MoveNext() == true)
{
Console.WriteLine(nodeIter.Current.Name);
}
希望这就是你要找的。
干杯!
https://stackoverflow.com/questions/12064010
复制