我有一个传递给XML解析器的XML文件,我需要从外部资源加载内容,如下所示:
<!DOCTYPE foo [<!ELEMENT foo ANY >
<!ENTITY data SYSTEM "file:///d:/data.txt" >]>
<component id="200">
<![CDATA[&data;]]>
</component>
我希望将数据写入CDATA标记内,但是,这只是引入了<![CDATA[&data;]]>
,并且由于CDATA
标记被视为注释,因此永远不会获取外部资源数据。
数据必须在CDATA标记内才能被接受。 如何做到这一点?
谢谢!
答案 0 :(得分:1)
您的要求似乎是自相矛盾的。 <![CDATA[ ... ]]>
的全部要点是,方括号内的所有内容(]]>
除外)都被视为常规字符数据,而不是标记。如果您想使用诸如&data;
之类的实体引用,那很好,但是将它们放在CDATA节中是对XML解析器的显式指令,以忽略它们。