【问题标题】:Unicode escape characters not being read by XmlReaderXmlReader 未读取 Unicode 转义字符
【发布时间】:2011-02-19 13:15:01
【问题描述】:

我有一个 XML 文档,我将它导入到一个 XmlReader 中,该文档有一些我需要保留的 unicode 格式。我保留了空格,但它删除了编码的#x2028,我认为它应该表示为换行符。

这是我的代码:

var settings = new XmlReaderSettings
                   {
                       ProhibitDtd = false,
                       XmlResolver = null,
                       IgnoreWhitespace = false
                   };

var reader = XmlReader.Create(new StreamReader(fu.PostedFile.InputStream), settings);
var document = new XmlDocument {PreserveWhitespace = true};
document.Load(reader);
return document;

XML 示例:

<td valign="top" align="center">Camels and camel &#x2028;resting place</td>

如何获取这些字符以呈现 br 标记?

【问题讨论】:

    标签: c# .net xml unicode


    【解决方案1】:

    您的问题不清楚:您是否希望 XmlReader 将 &amp;#x2028; 转换为 HTML &lt;br&gt; 标记?这不会发生。

    或者您是否正在检查 &lt;td&gt; 元素的实际字符内容(在代码中,而不是打印/显示的那样)并看到“骆驼休息的地方”?如果是,请显示您用于验证这一点的代码,因为这将是一个相当大的错误。

    还是别的什么?

    【讨论】:

    • 我想用 br 标签替换那个 Unicode 点。我想通了,谢谢。
    【解决方案2】:

    将代码导入阅读器后,我能够找到并替换该字符:

    Regex.Replace(s, "\u2028", "<br/>");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-25
      • 1970-01-01
      • 2012-03-03
      • 2018-05-21
      • 1970-01-01
      • 2014-09-17
      • 1970-01-01
      • 2015-09-25
      相关资源
      最近更新 更多