2

我有一个 XML 文件,它有两个同名节点,需要验证第一个节点是否存在。我正在尝试使用 SelectSingleNode 并找到了一些 XPath 示例。

XML 文件

<root>
    <header/>
    <mensagem>
        <header/>
        <operacoes>
            <operacao>
                <titulo>
            </operacao>
            <operacao>
                <titulo>
            </operacao>
        </operacoes>
    </mensagem>
    <trailer/>
</root>

代码

XmlDocument arquivoXml = new XmlDocument();
arquivoXml.Load(arquivo.ToString());

if (arquivoXml.DocumentElement.SelectSingleNode("root/header") != null)
{
    // Tryed the condition above with XPath "../header" too
    // If first header does exists
}
else
{
    // If first header does not exists
}

如果我删除一个或另一个节点,条件总是会产生相同的结果。如何验证特定的存在?

谢谢

4

1 回答 1

1

鉴于您的 XML,我想您想检查一下

if (arquivoXml.SelectSingleNode("root/header") != null)

或者

if (arquivoXml.DocumentElement.SelectSingleNode("header") != null)

您甚至不需要 XPath,但可以使用

if (arquivoXml.DocumentElement["header"] != null)
于 2016-05-05T14:15:44.510 回答