c# - xml文档,转义这个字符

标签 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:

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

result 不会是 &,result 会是 "。所以 Contains("&") 永远不会是真的。

测试#2:

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

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

关于c# - xml文档,转义这个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6488416/

相关文章:

c# - 在 C# 中选中和取消选中 TreeView 的所有节点

c# - 什么是避免使用大量参数的方法的好设计?

c# - 使用通用 RootObject 来处理根处具有不同属性名称的 JSON

.net - Dictionary<K,V> 线程对于同时阅读和添加是否安全?

c# - 强制包含对 dll 的引用

.net - 调试应用程序中的巨大内存泄漏

C# 扩展方法仅在一个类 ("private"中可见和可访问)

Android 平滑滚动到底部

xml - 在 XQuery 中,如何根据给定谓词递归过滤后代?

c# - 使用 XSLT 转换序列化的 .net 对象