Xml文档,请对此字符进行转义

本文关键字:字符 转义 文档 Xml | 更新日期: 2023-09-27 18:00:22

我有一个XML文档,它在一些节点中具有段落分隔符,如";

当我将XML加载到XmlDocument对象中时,我不再看到这个字符。相反,我看到了一个空间。我如何让它显示
?


XmlDocument doc = new XmlDocument();
doc.Load(xmlFilePath); 
XmlNodeList nodes = doc.SelectNodes("/catalog/classes"); 
foreach(XmlNode node in nodes) { 
    string category = node["category"]; 
    bool containerSeperator = category.Contains("
") // this should return true but it returns false. This category has a paragraph separator
}

Xml文档,请对此字符进行转义

测试#1:

var xmlText = @"<Test>&amp;</Test>";
var xml = XDocument.Parse(xmlText);
var result = xml.Element("Test").Value;

result将不是&amp;,结果将是"。所以Contains("&amp;")永远不会是真的。

测试#2:

var xmlText = @"<Test>&#x2029;</Test>";
var xml = XDocument.Parse(xmlText);
var result = Encoding.Unicode.GetBytes(xml.Element("Test").Value);

结果将是两个字节:x20x29,这正是从XML中读取的内容。所以字节在那里,你只是看不到它们,因为这个Unicode字符是不可读的。