C# 如何使用XmlReader检测无子xml节点?

C# 如何使用XmlReader检测无子xml节点?,c#,C#,如何区分这两个节点 <Header Name="ABC" /> and <Test Test="AA"> Hello </Test> 和 你好 使用XmlReader?问题是,我无法使用XmlReader了解节点是否包含子节点。请参见MSDN:-“在派生类中重写时,从流中读取下一个节点。” MSDN页面上有一个示例,但我认为您希望执行以下操作: using(var reader = XmlReader.Create(stream)) { whil

如何区分这两个节点

<Header Name="ABC" />
and
<Test Test="AA">
Hello
</Test>

和
你好
使用XmlReader?问题是,我无法使用
XmlReader

了解节点是否包含子节点。请参见MSDN:-“在派生类中重写时,从流中读取下一个节点。”

MSDN页面上有一个示例,但我认为您希望执行以下操作:

using(var reader = XmlReader.Create(stream))
{
    while(!reader.EOF)
    {
        reader.Read();

        if(reader.IsEmptyElement)
        {
            ...
        }
    }
}
诀窍在于,当您理解每次在
while
循环并调用
reader.Read()时
您可以前进到下一个节点,因此当您在
读取器
上调用任何其他方法/属性时,它们将对当前节点起作用

作为替代方法,您可以使用XPath并检查
XmlNode.HasChildNodes
属性