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

C# 确定XmlTextReader.Read()是否读取结束标记,c#,xml,parsing,C#,Xml,Parsing,使用XmlTextReader.Read(),如何确定读取器读取的内容是否是结束/结束标记 请注意,我不是在寻找的用法。我希望验证是否给定以下XML: <thistag what="nothing"> <inside color="cyan"/> </thistag> 但我知道这种方法并不优雅,如果特定标记不需要属性,它可能会失败。XmlNodeType.Element对应于打开的节点XmlNodeType.EndElement用于关闭节点。XmlNo

使用XmlTextReader.Read()
,如何确定读取器读取的内容是否是结束/结束标记

请注意,我不是在寻找的用法。我希望验证是否给定以下XML:

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

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

XmlNodeType.Element
对应于打开的节点
XmlNodeType.EndElement
用于关闭节点。

XmlNodeType.Element
对应于打开节点
XmlNodeType.EndElement
用于关闭节点。

我还没有尝试过这个,希望它能帮助:

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

  }
}

我还没有尝试过这个,希望这有帮助:

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

  }
}

仅供参考,您不应使用
new XmlTextReader()
new XmlTextWriter()
。自.NET 2.0以来,它们一直被弃用。改为使用
XmlReader.Create()
XmlWriter.Create()
。我很想知道我的问题为什么遭到否决票。请就我如何能做得更好或是否有任何问题提出建议。谢谢我没有投反对票,但我注意到你没有包含任何代码。@JohnSaunders,我知道你没有。我希望被否决的人能收到我的纸条。不管怎样,您认为有必要添加代码吗?我认为这是没有必要的,这个问题足以说明我的观点;仅供参考,您不仅是为了我们“给您密码”,您不应该使用
new XmlTextReader()
new XmlTextWriter()
。自.NET 2.0以来,它们一直被弃用。改为使用
XmlReader.Create()
XmlWriter.Create()
。我很想知道我的问题为什么遭到否决票。请就我如何能做得更好或是否有任何问题提出建议。谢谢我没有投反对票,但我注意到你没有包含任何代码。@JohnSaunders,我知道你没有。我希望被否决的人能收到我的纸条。不管怎样,您认为有必要添加代码吗?我认为这是没有必要的,这个问题足以说明我的观点;你不只是为了我们“给你密码”