Search for nodes by name in XmlDocument
I'm t开发者_JAVA技巧rying to find a node by name in an XmlDocument with the following code:
private XmlNode FindNode(XmlNodeList list, string nodeName)
{
if (list.Count > 0)
{
foreach (XmlNode node in list)
{
if (node.Name.Equals(nodeName)) return node;
if (node.HasChildNodes) FindNode(node.ChildNodes, nodeName);
}
}
return null;
}
I call the function with:
FindNode(xmlDocument.ChildNodes, "somestring");
For some reason it always returns null and I'm not really sure why. Can someone help me out with this?
Why can't you use
Node.SelectSingleNode(".//" + nodeName)
?
Change this line:
if (node.HasChildNodes) FindNode(node.ChildNodes, nodeName);
to:
if (node.HasChildNodes)
{
XmlNode nodeFound = FindNode(node.ChildNodes, nodeName);
if (nodeFound != null)
return nodeFound;
}
EDITED: the code is more correct now (tested) ;)
精彩评论