【问题标题】:XML '&' character causing problemsXML '&' 字符导致问题
【发布时间】:2009-12-07 22:00:49
【问题描述】:

应为分号字符。 错误处理资源'...

<key>SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\CNXT_MODEM_PCI_VEN_8086&DEV

在浏览器中查看我的 XML 文件时,如何避免打印出此错误?似乎因为 '&' 字符而抱怨,我该如何逃避它?谢谢。

【问题讨论】:

    标签: xml


    【解决方案1】:

    尝试使用&amp;amp; 转义它。

    【讨论】:

      【解决方案2】:

      根据 XML 标准,& 字符应转义为 &amp;amp;。请参阅this SO question 了解更多信息。

      【讨论】:

        【解决方案3】:

        你需要使用字符实体&amp;amp;你也可能会遇到开尖括号的问题,需要编码为&amp;lt;

        【讨论】:

          【解决方案4】:

          您是如何创建这样的 XML 的?我敢打赌,您是使用字符串操作创建它的,因为没有自尊的 XML API 会产生这种无效的 XML。

          这就是使用 XML API 而不是字符串 API 创建 XML 的原因。


          var keyElement = new XElement(
              "key", @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\CNXT_MODEM_PCI_VEN_8086&DEV");
          

          问题解决了。

          【讨论】:

          • +1 关于通过标准字符串操作创建 XML 的警告
          • 手动创建 XML 通常很有用。或者确实手动编辑 XML。 &是简单的答案,不包含在这个答案中。
          • XML 可以通过使用基于 XML 的 API 手动创建,例如 .NET 中的 XmlWriter。这完全避免了这个问题,这就是我所指的。
          【解决方案5】:

          转义 & 符号:

          &amp;
          

          【讨论】:

            【解决方案6】:

            我遇到了同样的问题并使用以下方法修复了它:

            translate(replace(replace(TaskType),'&',' '),' > & < / \ " - ''',' ') 
            

            它删除了所有 & 和连字符。我相信 XML 不喜欢那些字符。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2021-11-14
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2016-11-06
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多