如何评估CDATA部分中的DTD变量?

时间:2011-01-11 12:59:38

标签: xml dtd cdata entities

我有一个类似于下面的XML:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd" 
    [<!ENTITY IP_COF "xxx.xxx.xxx.xxx">]
>
<properties>
   <comment>Properties for COF API</comment>
   <entry key="SesameURL">http://&IP_COF;:8080/openrdf-sesame</entry>
   <entry key="RDbNamespaces">
       <![CDATA[PREFIX vocab: <http://&IP_COF;:2020/vocab/resource/>]]>
   </entry>
</properties>

当我使用Internet Explorer打开xml文件时,&IP_COF;的第一个实例已正确替换为对应的IP_COF值,而IP_COF部分中的CDATA已更正没有被重视。有没有办法强制IP_COF部分内的CDATA标记?

1 个答案:

答案 0 :(得分:3)

不 - CDATA部分的重点是解析器改变它们。

如果你想在那里使用实体扩展,你需要删除CDATA,并对URL进行核心编码,即

<entry key="RDbNamespaces">
   PREFIX vocab: &lt;http://&IP_COF;:2020/vocab/resource/&gt;
</entry>