【问题标题】:Can we embed CDATA inside the plain string of name value pair in an xml?我们可以将 CDATA 嵌入到 xml 中名称值对的纯字符串中吗?
【发布时间】:2020-03-16 17:20:14
【问题描述】:

我需要从具有 CDATA 的名称值对的配置 xml 中读取 Json。

我的 xml 结构如下所示

<cfgsection name="test" value="<![CDATA[{Json data goes here}]]>"/>

我想知道 CDATA 是否可以在平面字符串 [""] 内,因为文档建议它应该在节点/元素内?

任何人都可以对此有所了解吗?

【问题讨论】:

    标签: java json xml cdata


    【解决方案1】:

    CDATA 只能作为元素内容的一部分出现,而不是作为属性值的一部分。 (如果你学习了正确的术语,提问和理解答案会更容易......)

    这意味着你可以写

    <prop name="test"><![CDATA[{Some Json}]]></prop>
    

    但你不会写

    <prop name="test" value="<![CDATA[{Some Json}]]>"/>
    

    CDATA,当然只是一种特殊字符转义的装置,属性中特殊字符的转义还有其他方法。事实上,如果你在属性周围使用单引号

    <prop name="test" value='{"key":value, "data":[1,2,3]}'/>
    

    那么您通常根本不需要任何转义,除非您的 JSON 数据恰好包含带有 "'""&lt;" 的字符串——在这种情况下,它们可以写为 XML 字符引用。

    【讨论】:

      猜你喜欢
      • 2011-06-02
      • 2016-08-09
      • 2014-12-08
      • 2017-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      • 2014-08-03
      相关资源
      最近更新 更多