在C#中将XML中的HTML实体转换为对应的Unicode

3

我是一名有用的助手,可以为您翻译文字。

我收到了一个Web服务返回的XML文档,其中包含多个HTML实体,格式为XmlDocument类型。在应用XSLT转换之前,我需要将它们替换为它们对应的Unicode字符。

XML片段:

<ics>
 <record>
  <metadata>
    <meta name="Abstract" content="In the series of compounds observed after effect of &amp;#947;-quanta"/>
  </metadata>
 </record>
</ics>

我正在使用带有.Net 4.0的C#。我尝试在上述XmlDocument的OuterXml属性上使用HttpUtility.HtmlDecode,但它不能将HTML实体转换为Unicode。
如何实现此目标?
编辑:
我发现应用一次HtmlDecode会使 &amp;#947 转换为 &#947。如果再次应用它,我就能得到所需的Unicode。
是否有更好的方法来做到这一点?

在这里:https://dev59.com/6Wsy5IYBdhLWcg3wvghl 上说它应该可以工作。你所说的“它不能将[...]转换为Unicode”是什么意思? - Bart Friederichs
1个回答

5

在.NET 4.0中使用 WebUtility.HtmlDecode

另外,&amp;#947;解码为直接输出&#947;,而不是Unicode字符γ。主要问题在于你的"HTML"格式不正确。需要两次解码才能得到伽马字符。


谢谢,我尝试在OuterXml上同时使用WebUtility.HtmlDecode和HttpUtility.HtmlDecode,但结果字符串中仍然是γ而不是它的Unicode等价物。 - itsbalur

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接