包含在![CDATA[]]
中的字符列表的XML元素,因此它们被视为字符,而不是XML标记。
<list><![CDATA[some-chars-here]]></list>
字符列表很长。我想要列表的子集,每个子集都在变量中定义(正式地,在实体引用中)
<!DOCTYPE engineMetadata [
<!ENTITY set1 "set1-chars">
<!ENTITY set2 "set2-chars">
]>
可以用作<list><![CDATA[&set1;&set2]]></list>
。如果实体引用现在被视为字符而不是XML标记,那么这不起作用。
有没有正确的方法或解决方法呢?
答案 0 :(得分:1)
解决方法是不使用CDATA。由于CDATA的唯一目的是告诉解析器将特殊字符视为普通字符而不是标记,如果您希望将特殊字符视为标记,则不应将它们放在CDATA中。