【发布时间】:2016-01-01 15:48:13
【问题描述】:
我正在解析一些不包含自闭合元素的旧 XML 数据。
所有元素也都有结束元素
<my-element someValue="xyz"></my-element>
<!-- instead of <my-element someValue"xyz" /> -->
当我在 C# 中使用 XMLReader 解析文件时,阅读器会为开始标记和结束标记中的任何“空内容”执行额外的 .Read()。
当我将比赛添加到列表中时,我总是会得到想要的内容,而我的列表中会添加一个空内容。
我可以通过调用来解决这个问题
reader.Skip();
在我的循环结束时手动操作,但如果我遇到一些包含自闭标签的数据文件,那就太麻烦了。
如何告诉读者跳过所有空元素?
更新:
如果我放一个就可以了
if(reader.IsStartElement()){...
在我的顶部
while(reader.Read()){ ...
循环
【问题讨论】:
-
我认为这是不可能的。您可以判断一个元素是否会自动关闭,因为
XmlReader.IsEmptyElement将是true。我想你可以弄清楚在你的循环中做什么。 -
刚刚找到一个解决方案:我正在通过 reader.IsStartElement(); 进行检查