【问题标题】:XML Reader issue with parsing one tag解析一个标签的 XML 阅读器问题
【发布时间】:2013-09-19 21:21:00
【问题描述】:

我有这样的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 标签的标签数量?

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

【问题讨论】:

    标签: c# xml xmlreader


    【解决方案1】:

    答案是reader.IsEmptyElement()。在此处查看XmlReader 的文档http://msdn.microsoft.com/en-us/library/system.xml.xmlreader.aspx

    【讨论】:

    • isEmptyNode() 不是 XmlReader 的一部分
    • 对,我的意思是 IsEmptyElement,我什至链接到 API 并没有注意到阅读障碍。
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多