确定XmlTextReader.Read()是否读取结束标记

本文关键字:读取 结束 是否 XmlTextReader Read 确定 | 更新日期: 2023-09-27 18:03:39

Using XmlTextReader.Read(),我如何确定阅读器读取的是结束/结束标记?

请注意,我不是在寻找XmlTextReader.IsEmptyElement的用法。我正在寻找验证是否给定以下XML:

<thistag what="nothing">
   <inside color="cyan"/>
</thistag>

我可以确定我读取的thistag标记是开始标记还是结束/结束标记吗?

到目前为止,我的解决方案涉及检查what属性的存在:

if (reader.GetAttribute("what") == null)
{
    // it's an end tag!
}else{
    // it's a start tag!
}

但是我知道这种方法不是那么优雅,如果特定标记不需要属性,它可能会失败。

确定XmlTextReader.Read()是否读取结束标记

我还没有试过,希望这能有所帮助:

XmlTextReader reader = null;
reader = new XmlTextReader(filename);
while (reader.Read()) 
{
  if(reader.NodeType==XmlNodeType.Element) // for opening tag
  {
    //your code
  }
  else if(reader.NodeType==XmlNodeType.EndElement) // for closing tag
  {
    //your code
  }
}

XmlNodeType.Element对应开口节点。XmlNodeType.EndElement为关闭节点