使用XDocument读取XML时,不要解码转义字符

使用XDocument读取XML时,不要解码转义字符

问题描述:

我有一个XML,其中包含包含转义字符(如<)的属性字符串。使用XDocument读取XML时,不要解码转义字符

在读取XDocument这样的文件并使用.Value访问属性内容后,所有这样的转义字符都被解码。 .Value将返回一个包含<而不是&lt;的字符串。

有没有办法保持XML字符串中包含的原始文本,而不是解码它们?

+0

如果XML字符串中不包含两个,逃脱了''<和转义' Sinatr

+0

你可以使用类似'new XText(x.Value).ToString()'的方式来转义它,尽管不能保证结果与源相同。 –

+0

我花了相当一段时间一次试图做到这一点(正如你所描述的 - 避免扩展包括字符实体在内的所有xml实体),没有任何成功。 – Evk

这不是很漂亮,但我用这个:

var attributeText = attribute.ToString(); 
attributeText = attributeText.TrimPrefix(attributeName); 
attributeText = attributeText.TrimStart('='); 
attributeText = attributeText.Trim('\"');