解析一个标记时出现 XML 读取器问题

本文关键字:XML 读取 问题 一个 | 更新日期: 2023-09-27 18:32:13

我有这样的xml文件

<Person>
    <Name>ABC</Name>
    <Title>Prof</Title>
    <Class>1</Class>
</Person>
<Person>
    <Name>XYZ</Name>
    <Title />
    <Class>2</Class>
</Person>

我的 C# 代码是这样的

XMLReader reader = XmlReader.Create(new StringReader(xmlBlock));
    while (reader.Read())
          {
            switch (reader.NodeType)
            {
                 case XmlNodeType.Element:
                       //Do Something
                       break;
                 case XmlNodeType.Text:
                       //Do Something
                       break;
                 case XmlNodeType.EndElement:
                       //Do Something
                       break;
             }
    }

如何在代码中识别标题标签存在多少个标签?

<title>Prof</title> or <title />

解析一个标记时出现 XML 读取器问题

答案是reader.IsEmptyElement() . 请参阅此处XmlReader文档 http://msdn.microsoft.com/en-us/library/system.xml.xmlreader.aspx

使用示例代码的结构,您可以检查:

   case XmlNodeType.Element:
      if (reader.Name == "title") titleCount++;
      break;

如果您谈论的是计算非空值,那么也要基于!reader.IsEmptyElement()计数。