次のコードを使用して、XmlDocumentで名前でノードを検索しようとしています。
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;
}
私は次のように関数を呼び出します:
FindNode(xmlDocument.ChildNodes, "somestring");
何らかの理由で常にnullを返しますが、その理由はよくわかりません。誰かがこれで私を助けることができますか?
この行を変更します:
if (node.HasChildNodes) FindNode(node.ChildNodes, nodeName);
に:
if (node.HasChildNodes)
{
XmlNode nodeFound = FindNode(node.ChildNodes, nodeName);
if (nodeFound != null)
return nodeFound;
}
編集済み:コードがより正確になりました(テスト済み);)