给定这样的输入 XML 文档:
<?xml version="1.0" encoding="utf-8"?>
<title> This contains an 'embedded' HTML document </title>
<document>
<html>
<head><title>HTML DOC</title></head>
<body>
Hello World
</body>
</html>
</document>
</root>
如何提取“内部”HTML 文档;将其呈现为 CDATA 并包含在我的输出文档中?
所以输出文档将是一个 HTML 文档;其中包含一个将元素显示为文本的文本框(因此它将显示内部文档的“源视图”)。
我试过这个:
<xsl:template match="document">
<xsl:value-of select="*"/>
</xsl:template>
但这只会渲染文本节点。
我试过这个:
<xsl:template match="document">
<![CDATA[
<xsl:value-of select="*"/>
]]>
</xsl:template>
但这逃脱了实际的 XSLT,我得到:
<xsl:value-of select="*"/>
我试过这个:
<xsl:output method="xml" indent="yes" cdata-section-elements="document"/>
[...]
<xsl:template match="document">
<document>
<xsl:value-of select="*"/>
</document>
</xsl:template>
这确实插入了一个 CDATA 部分,但输出仍然只包含文本(剥离的元素):
<?xml version="1.0" encoding="UTF-8"?>
<html>
<head>
<title>My doc</title>
</head>
<body>
<h1>Title: This contains an 'embedded' HTML document </h1>
<document><![CDATA[
HTML DOC
Hello World
]]></document>
</body>
</html>