XmlReader - 自关闭元素不会触发 EndElement 事件?

发布于 2024-07-08 15:38:30 字数 495 浏览 7 评论 0原文

我正在 .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 或属性来指示自关闭元素?

I am using XmlReader in .NET to parse an XML file using a loop:

while (xml.Read()) {
   switch xml.NodeType {
     case XmlNodeType.Element:
      //Do something
     case XmlNodeType.Text:
      //Do something
     case XmlNodeType.EndElement:  
      //Do something
   }
}

I was wondering if it was normal that the following XML code does not produce some EndElement nodes? Please note the missing space before the /> but I don't think that's the problem.

<date month="November" year="2001"/>
<zone name="xml"/>

Is there a different NodeType or property to indicate a self-closing element?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

再浓的妆也掩不了殇 2024-07-15 15:38:30

不,您可以通过查看 XmlReader.IsEmptyElement。

在该属性的文档中:

对应的 EndElement 节点不是
为空元素生成。

No, you check it by looking at XmlReader.IsEmptyElement.

In the docs for that property:

A corresponding EndElement node is not
generated for empty elements.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文