XmlReader - 自关闭元素不会触发 EndElement 事件?
Posted
技术标签:
【中文标题】XmlReader - 自关闭元素不会触发 EndElement 事件?【英文标题】:XmlReader - Self-closing element does not fire a EndElement event? 【发布时间】:2010-09-19 11:20:21 【问题描述】:我在 .NET 中使用 XmlReader 使用循环解析 XML 文件:
while (xml.Read())
switch xml.NodeType
case XmlNodeType.Element:
//Do something
case XmlNodeType.Text:
//Do something
case XmlNodeType.EndElement:
//Do something
我想知道下面的 XML 代码不产生一些 EndElement 节点是否正常?请注意 /> 之前缺少的空格,但我认为这不是问题。
<date month="November" year="2001"/>
<zone name="xml"/>
是否有不同的 NodeType 或属性来指示自闭合元素?
【问题讨论】:
【参考方案1】:不,您通过查看XmlReader.IsEmptyElement 来检查它。
在该属性的文档中:
对应的 EndElement 节点不是 为空元素生成。
【讨论】:
当我当前的NodeType
是StartElement
时,我如何区分<element />
和<element></element>
?对于这两种情况,IsEmptyElement
是 true
。
@BrianWarshaw:你会看到EndElement
节点是否存在,基本上......当你在StartElement
上时,我不知道有什么方法可以立即进行。
谢谢——事实证明我可能错了 IsEmptyElement
在这些情况下是真的。我盯着这个输出看太久了:-)以上是关于XmlReader - 自关闭元素不会触发 EndElement 事件?的主要内容,如果未能解决你的问题,请参考以下文章
Angular 5 自定义指令触发包装到 *ngIf=false 中的元素