如果if条件被注释,我输出为w:p,w:sec等,这正是我需要的。但是if条件只允许打印w:p不会发生。可以解决这个问题......
<xsl:param name="para" select="w:p"/>
<xsl:template match="/">
<xsl:for-each select="node()/*/*">
<xsl:if test = "name() = $para">
<xsl:value-of select="name()"/><xsl:text>
</xsl:text>
</xsl:if>
</xsl:for-each>
</xsl:template>
输入XML:
<w:p>
<w:pPr></w:pPr>
</w:p>
<w:sec>
</w:sec>
答案 0 :(得分:1)
问题在于:
<xsl:param name="para" select="w:p"/>
这会尝试选择文档节点的子节点,名为“w:p”而不是字符串“w:p”。
<强>解决方案强>:
将以上内容替换为:
<xsl:param name="para" select="'w:p'"/>