このxmlドキュメント
<listOfItem>
<Item id="1">
<attribute1 type="foo"/>
<attribute2 type="bar"/>
<property type="x"/>
<property type="y"/>
<attribute3 type="z"/>
</Item>
<Item>
//... same child nodes
</Item>
//.... other Items
</listOfItems>
この XML ドキュメントでは、各「Item」ノードに対して、「property」子ノードのみを選択したいと思います。これを C# で直接行うにはどうすればよいでしょうか。「直接」とは、Item のすべての子ノードを選択せずに、1 つずつチェックすることを意味します。これまでのところ:
XmlNodeList nodes = xmldoc.GetElementsByTagName("Item");
foreach(XmlNode node in nodes)
{
doSomething()
foreach(XmlNode child in node.ChildNodes)
{
if(child.Name == "property")
{
doSomethingElse()
}
}
}
ベストアンサー1
使用できますSelectNodes(xpath)
プロパティの代わりにメソッドChildNodes
:
foreach(XmlNode child in node.SelectNodes("property"))
{
doSomethingElse()
}