我真的需要这个问题的答案。我正在开发一个项目,该项目使用 XML 制作页面,然后使用 XSLT 将其生成网页。这是一个代码示例:
public function transform ($xml) {
$proc = new XSLTProcessor;
$proc->importStyleSheet ($this->xsl);
$output = $proc->transformToXML ($xml);
return $output;
}
$xml 包含 XML 格式的网页,例如:
<?xml version="1.0" encoding="utf-8"?>
<page>
<meta>
<language>en</language>
<title>Main page</title>
<content>
<![CDATA[
lot's of content here along with <p>html</p>.
]]>
</content>
</page>
因此,网页是 XML 格式并传递给转换函数,该函数加载一个 XSL 文件以将 XML 转换为 HTML 网页。但是,上述脚本将无法正确加载内容标记,因为 XSLT 出于某种原因不理解 CDATA,并将 HTML 编码为实体。
所以,问题是,如何使用 XSLT 将 HTML 作为 HTML 输出而不将其编码为实体?