我需要转换
中的所有节点<?xml version="1.0" encoding="UTF-8"?><root>
<catalog>
<cd>
<country> <li>WIN8</li><li>Mac</li><li>OS</li></country>
<name> <li>WIN8</li><li>Mac</li><li>OS</li></name>
</cd>
</catalog>
</root>
到
<?xml version="1.0" encoding="UTF-8"?>
<root>
<catalog>
<cd>
<country><![CDATA[ <li>WIN8</li><li>Mac</li><li>OS</li>]]></country>
<name><![CDATA[ <li>WIN8</li><li>Mac</li><li>OS</li>]]></name>
</cd>
</catalog>
</root>
我知道我可以使用cdata-section-elements =“country name”应用xsl,但有没有办法选择cdata-section-elements中的所有节点? 可以使用http://xsltransform.net/进行转换。 这是xsl
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output cdata-section-elements="country name"/>
<xsl:template match="node() | @*">
<xsl:copy>
<xsl:apply-templates select="node() | @*" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
感谢
答案 0 :(得分:4)
文档http://www.w3.org/TR/xslt20/#serialization清楚地说明了&#34; cdata-section-elements属性是一个以空格分隔的QName列表。&#34;。因此,您需要列出要将其内容序列化为CDATA部分的元素名称。没有类似的外卡,例如strip-space
。