在XmlDocument中按名称搜索节点

Raj*_*enK 14 c# xmldocument

我正在尝试使用以下代码在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;
}
Run Code Online (Sandbox Code Playgroud)

我用以下函数调用该函数:

FindNode(xmlDocument.ChildNodes, "somestring");
Run Code Online (Sandbox Code Playgroud)

由于某种原因,它总是返回null,我不确定为什么.有人可以帮我解决这个问题吗?

Tom*_*m W 21

你为什么不能用

Node.SelectSingleNode(".//" + nodeName)
Run Code Online (Sandbox Code Playgroud)


dig*_*All 7

改变这一行:

if (node.HasChildNodes) FindNode(node.ChildNodes, nodeName);
Run Code Online (Sandbox Code Playgroud)

至:

if (node.HasChildNodes)
{
    XmlNode nodeFound = FindNode(node.ChildNodes, nodeName);
    if (nodeFound != null)
        return nodeFound;
}
Run Code Online (Sandbox Code Playgroud)

编辑:现在代码更正确(测试);)