Select 紧挨着另一个的特定节点 - C# - SelectSingleNode

Select specific node next to another - C# - SelectSingleNode

我有一个 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
}

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

谢谢

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

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

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

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

if (arquivoXml.DocumentElement["header"] != null)