【发布时间】:2012-10-05 13:59:09
【问题描述】:
在 .NET 中,如何从 XElement 读取文本内容?
例如,来自 XElement
XElement.Parse("<tag>Alice & Bob<other>cat</other></tag>")
我想要字符串 'Alice & Bob'
我试过element.Value,但返回的是'Alice & Bobcat' :(
【问题讨论】:
-
我很确定这是格式错误的 XML,这就是您遇到问题的原因。标签应该包含一个值或其他标签,而不是两者。
-
<p>Perfectly normal for that popular XML language called <b>HTML</b></p> -
实际上,HTML 不是 XML,反之亦然。当然,它们是相关的,但只有 XHTML 两者兼而有之。 en.wikipedia.org/wiki/XHTML。如果要解析 HTML,则应该使用 HTML 解析器。如果您正在解析 XML,我仍然认为这是错误的格式。
-
我不确定标准是否从现在到那时发生了变化,但按照当前标准,这是格式良好的 XML。
tag节点有两个子节点,一个文本节点和一个元素节点。对于 DTD 或模式,问题确实会变得更加复杂,在这种情况下,可能无法准确指定这种格式。 -
@Bobson:这是有效的 xml,所以你不能仅仅因为你认为这是不好的做法就声明“格式错误的 xml”。