使用XDocument读取XML时,不要解码转义字符
问题描述:
我有一个XML,其中包含包含转义字符(如<
)的属性字符串。使用XDocument读取XML时,不要解码转义字符
在读取XDocument
这样的文件并使用.Value
访问属性内容后,所有这样的转义字符都被解码。 .Value
将返回一个包含<
而不是<
的字符串。
有没有办法保持XML字符串中包含的原始文本,而不是解码它们?
答
这不是很漂亮,但我用这个:
var attributeText = attribute.ToString();
attributeText = attributeText.TrimPrefix(attributeName);
attributeText = attributeText.TrimStart('=');
attributeText = attributeText.Trim('\"');
如果XML字符串中不包含两个,逃脱了''<和转义' Sinatr
你可以使用类似'new XText(x.Value).ToString()'的方式来转义它,尽管不能保证结果与源相同。 –
我花了相当一段时间一次试图做到这一点(正如你所描述的 - 避免扩展包括字符实体在内的所有xml实体),没有任何成功。 – Evk