【问题标题】:How can I make the value XPathSelectElement same as the original copy如何使值 XPathSelectElement 与原始副本相同
【发布时间】:2015-12-04 00:21:10
【问题描述】:

我已经有一个代码可以获取标签头的值,问题是原始的特殊字符被转换成十六进制,而 xpathselectelement 值得到的值已经被转换成 utf8。如何使 XPathSelectElement 的值与原始值相同。

这是我的代码:

if (content.Contains("<h1"))
            {
                _chapterName = inputXDoc.XPathSelectElement("//h1").Value;
            }
            else if (content.Contains("<h2"))
            {
                _chapterName = inputXDoc.XPathSelectElement("//h2").Value;
            }
            else if (content.Contains("<h3"))
            {
                _chapterName = inputXDoc.XPathSelectElement("//h3").Value;
            }
            else if (content.Contains("<h4"))
            {
                _chapterName = inputXDoc.XPathSelectElement("//h4").Value;
            }

这是值来自的html:

<h1><a id="p85"/><a id="ch10" href="005_inhoud.html#ch10">10. &#x2018;Ben je nu gezond?&#x2019;</a></h1>

输入 XPathSelectElement("//h1").Value; 的输出

10。 “Ben je nu gezond?”

我想要的输出在这里:

10. &#x2018;Ben je nu gezond?&#x2019;

【问题讨论】:

    标签: c# html xpath


    【解决方案1】:

    因为您使用 XML 解析器解析文件,所以在将 XML 加载到 DomDocument 时,字符实体(' 等)会自动转换为实际字符。

    如果您想保留实体本身,您可以预处理文档以双重转义 & 符号。

    &#x2018;Ben je nu gezond?&#x2019;
    

    需要成为

    &amp;#x2018;Ben je nu gezond?&amp;#x2019;
    

    源代码中的文本(在 DomDocument 中)会像

    &#x2018;Ben je nu gezond?&#x2019;
    

    Ik hoop dat deze oplossing voor jou werkbaar is!

    【讨论】:

      猜你喜欢
      • 2013-08-31
      • 1970-01-01
      • 1970-01-01
      • 2018-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-30
      • 1970-01-01
      相关资源
      最近更新 更多