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