【问题标题】:XML documents and & char?XML 文档和 & 字符?
【发布时间】:2009-08-07 21:21:46
【问题描述】:

我有一个关于 XML 文档特殊字符的问题,我在 XML 中使用 & in on 项目的值,而 TXMLDoc Delphi 解析器正在抱怨它。

我搜索了一些 XML 解析选项,但没有一个涉及特殊字符,

有什么想法吗?

例子:

    <Configuration>
      <Configuration_item>  
        <view_name value="some view & name"/>

....

问候, 米卡

【问题讨论】:

    标签: xml delphi parsing special-characters delphi-7


    【解决方案1】:

    使用&amp;amp; 表示& 符号。您需要这样做的原因是因为 & 是 XML 中的特殊字符 - 具体来说,用于指示 XML 实体开始的字符,用于指定内容中的字符(具有讽刺意味)否则会是特殊/复杂的字符。

    <view_name value="some view &amp; name"/>
    

    其他常见的 XML 实体:

    • " 是&amp;quot;
    • &lt;(小于的缩写)
    • &amp;gt;(大于的缩写)

    更多信息:

    http://www.xml.com/pub/a/2001/01/31/qanda.html

    【讨论】:

    • 哇,好快,我还在编辑帖子,没错!谢谢!
    【解决方案2】:

    &amp;amp;&amp;lt;&amp;gt; 是您需要注意的特殊字符,在属性中还有 "&amp;amp; 有点像 XML 转义字符。

    它们可以这样被转义:

    • &amp;amp; => &amp;amp;
    • &amp;lt; => &amp;lt;
    • &amp;gt; => &amp;gt;
    • " => &amp;quot;

    (实际上,奇怪的是,您实际上不需要在属性中转义 &amp;gt;,只需 &amp;lt;。此外,如果您使用 ' 而不是 " 作为属性分隔符,而不是使用要将" 转义为&amp;quot;,您需要将' 转义为&amp;apos;。有关详细信息,请参阅XML 规范中的AttValue 参考。)

    【讨论】:

      【解决方案3】:

      Dav 和 lavinio 是对的。

      如果您有一个包含许多特殊字符的文本块,您可能希望将其包含在 CDATA 中。

      【讨论】:

      • 注意:不能将 CDATA 用于属性值,只能用于标签之间的文本块。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-24
      • 2011-02-03
      • 1970-01-01
      • 1970-01-01
      • 2022-01-15
      • 2014-09-18
      • 1970-01-01
      相关资源
      最近更新 更多