XML中与等价,.NET的XElement和XmlDocument能正确解析二者为相同结构,无需特殊处理,但需确保输入为合规XML而非HTML。

在使用 C# 解析 XML 时,处理形如 <tag></tag> 的标签是常见需求。很多人误以为这种写法和自闭合标签 <tag></tag> 有本质区别,或认为某些解析器无法正确识别它们。实际上,.NET 提供的 XML 解析工具能正确处理这些情况,关键在于理解 XML 规范和选择合适的 API。
误解:空内容标签必须写成自闭合形式
一个常见误解是认为 <tag></tag> 和 <tag></tag> 在解析时会有不同行为。其实在 XML 规范中,这两种写法是完全等价的——都表示一个没有子元素或文本内容的元素。.NET 的 XmlDocument、XElement 等类库会将它们视为相同结构。
例如以下两种写法:
在解析后都会生成相同的 DOM 节点,其 Value 或 InnerText 为 null 或空字符串,且 HasElements 为 false(如果没有子节点)。
正确使用 XElement 或 XmlDocument 解析
C# 中推荐使用 XElement(LINQ to XML)或 XmlDocument 来解析 XML。它们都能正确识别空标签和自闭合标签。
示例代码(使用 XElement):
还木有评论哦,快来抢沙发吧~