如何使用 XElement.Parse 解析 XML 而无需查看/将实体更改为字符?
Posted
技术标签:
【中文标题】如何使用 XElement.Parse 解析 XML 而无需查看/将实体更改为字符?【英文标题】:how to Parse XML using XElement.Parse without looking/changing Entities to characters? 【发布时间】:2012-10-24 22:40:00 【问题描述】:有没有一种方法可以使用 XElement.Parse 解析 XML,但不会将实体转换为字符?
例子:
var xmlText = "<name><firstname>Williáms</firstname></name>";
如果我使用以下方法解析它:
var element = XElement.Parse(xmlText);
var firstname = element.Element("firstname");
解析后,firstname
的值现在是“Williáms”
我怎样才能忽略那些要更改的实体?
【问题讨论】:
【参考方案1】:字符“&”在 XML 元素中是非法的。 "&" 将产生错误,因为解析器将其解释为字符实体的开始。
为了纠正,您的 Xml 应该使用 CDATA:
var xmlText = "<name><firstname><![CDATA[Williáms]]></firstname></name>";
【讨论】:
如果我在 XML 输入中读取这些标签,我该如何检查? @AllanRoyMalibiranBalderama:您无需检查任何内容,您的代码有效 但我打算使用 XMLViewer 预览 XML。此过程将隐藏实体... 我不确定我理解你的意思,你能详细说明你的问题吗? 我正在创建一个 WPF 程序,该程序将从 XML 中捕获一些 xml 标签以创建另一个 XML(我将其视为其元数据)。检查和验证后,用户可以在 XML 的预览中更新和编辑值。如果我们将使用此 CDATA 进程,这些实体列表将随之隐藏。以上是关于如何使用 XElement.Parse 解析 XML 而无需查看/将实体更改为字符?的主要内容,如果未能解决你的问题,请参考以下文章