我正在尝试为 xml 文件中的元素包装 CDATA。
我错过的另一点是,有一些具有相同名称的元素需要从添加 CDATA 中转义。
这是源xml文件:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<books>
<jndi:binding name="books/cat/action/configs">
<jndi:value type="java.lang.String">
<urlConfig>
<defaults catID="1983" subcatID="1987" method="get" onError="keep"/>
<urlKey name="logo" altURL="def.com">
<address>abc.com</address>
</urlKey>
<urlKey name="logo1" altURL="def.com">
<address>abc.com</address>
</urlKey>
</urlConfig>
</jndi:value>
</jndi:binding>
<jndi:binding name="books/cat/romance/configs">
<jndi:value type="java.lang.String">
<urlConfig>
<defaults catID="1983" subcatID="1987" method="get" onError="keep"/>
<urlKey name="logo" altURL="def.com">
<address>abc.com</address>
</urlKey>
<urlKey name="logo1" altURL="def.com">
<address>abc.com</address>
</urlKey>
</urlConfig>
</jndi:value>
</jndi:binding>
<jndi:binding name="books/cat/thriller/configs">
<jndi:value type="java.lang.String">
abc.com
</jndi:value>
</jndi:binding>
<jndi:binding name="books/cat/classic/configs">
<jndi:value type="java.lang.String">
abc.com
</jndi:value>
</jndi:binding>
</books>
我尝试使用 @Dimitre Novatchev 在如何将 CDATA 插入从 Access 2003 导出的 XML 文本标记中提到的相同技巧?. 但是有些方法对我不起作用。
这是我尝试过的 xsl 文件:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:jndi="urn:jboss:jndi-binding-service:1.0" >
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
<?xml version="1.0" encoding="ISO-8859-1"?>
有人可以建议我如何将 CDATA 添加到元素,并且还需要在 CDATA 的开头添加一行。
这是预期的结果:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<books>
<jndi:binding name="books/cat/action/configs">
<jndi:value type="java.lang.String">
<![CDATA[
<?xml version="1.0" encoding="ISO-8859-1"?>
<urlConfig>
<defaults catID="1983" subcatID="1987" method="get" onError="keep"/>
<urlKey name="logo" altURL="def.com">
<address>abc.com</address>
</urlKey>
<urlKey name="logo1" altURL="def.com">
<address>abc.com</address>
</urlKey>
</urlConfig>
]]>
</jndi:value>
</jndi:binding>
<jndi:binding name="books/cat/romance/configs">
<jndi:value type="java.lang.String">
<![CDATA[
<?xml version="1.0" encoding="ISO-8859-1"?>
<urlConfig>
<defaults catID="1983" subcatID="1987" method="get" onError="keep"/>
<urlKey name="logo" altURL="def.com">
<address>abc.com</address>
</urlKey>
<urlKey name="logo1" altURL="def.com">
<address>abc.com</address>
</urlKey>
</urlConfig>
]]>
</jndi:value>
</jndi:binding>
<jndi:binding name="books/cat/thriller/configs">
<jndi:value type="java.lang.String">
abc.com
</jndi:value>
</jndi:binding>
<jndi:binding name="books/cat/classic/configs">
<jndi:value type="java.lang.String">
abc.com
</jndi:value>
</jndi:binding>
</books>