Xml Document,转义此角色

时间:2011-06-27 03:48:42

标签: c# .net xml encoding xmldocument

我有一个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
}

1 个答案:

答案 0 :(得分:0)

测试#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字符是不可读的。