Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# XML读取器解析一个标记时出现问题_C#_Xml_Xmlreader - Fatal编程技术网

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

C# XML读取器解析一个标记时出现问题,c#,xml,xmlreader,C#,Xml,Xmlreader,我有这样的xml文件 <Person> <Name>ABC</Name> <Title>Prof</Title> <Class>1</Class> </Person> <Person> <Name>XYZ</Name> <Title /> <Class>2</Class> </

我有这样的xml文件

<Person>
    <Name>ABC</Name>
    <Title>Prof</Title>
    <Class>1</Class>
</Person>
<Person>
    <Name>XYZ</Name>
    <Title />
    <Class>2</Class>
</Person>
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 />
Prof或

答案是
reader.IsEmptyElement()
。请参见此处的
XmlReader
文档

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

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

如果你说的是计算非空值,那么也要基于
!reader.IsEmptyElement()

isEmptyNode()不是XmlReaderRight的一部分,我是说IsEmptyElement,我甚至链接到了API,没有注意到读写困难。