解析一个标记的XML Reader问题

时间:2013-09-19 21:21:00

标签: c# xml xmlreader

我有像这样的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 />

2 个答案:

答案 0 :(得分:0)

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

的文档

答案 1 :(得分:0)

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

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

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