我正在为 phpdoc 2 创建一个模板,我试图弄清楚xmlns="http://www.w3.org/1999/xhtml"
当从我的模板创建文档时如何防止该属性被添加到生成的 HTML 的根级元素中。我在模板中的 .xsl 文件会生成包含 html 片段的文件,这就是<html>
标签不是根级别元素的原因。看来 phpdoc 2 使用 XSLT v1.0,所以这限制了我的选择。经过一番搜索,最常见的答案是使用每个 .xsl 文件标签exclude-result-prefixes
上的属性<xsl:stylesheet>
,并将其值设置为#all
or #default
,因为您不能仅将xmlns
其用作命名空间来直接排除。但我试过了,exclude-result-prefixes
在我的模板中设置每个 .xsl 文件,但它不起作用。
根据要求,这是我的 .xsl 文件之一,api-doc.xsl:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/1999/xhtml"
exclude-result-prefixes="#all">
<xsl:output indent="no" method="html"/>
<xsl:include href="chrome.xsl"/>
<xsl:include href="api-doc/property.xsl"/>
<xsl:include href="api-doc/class.xsl"/>
<xsl:include href="api-doc/constant.xsl"/>
<xsl:include href="api-doc/function.xsl"/>
<xsl:include href="api-doc/docblock.xsl"/>
<xsl:include href="api-doc/file.xsl"/>
<xsl:template name="content">
<xsl:apply-templates select="/project/file[@path=$path]"/>
</xsl:template>
</xsl:stylesheet>
这是 api-doc/file.xsl 的片段:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/1999/xhtml"
exclude-result-prefixes="#all">
<xsl:output indent="no" method="html"/>
<xsl:template match="file">
<div class="text-content">
<!-- ... -->
</div>
</xsl:template>
</xsl:stylesheet>
元素<div class="text-content"></div>
是xmlns="http://www.w3.org/1999/xhtml"
添加了属性的元素。