在子节点问题中添加名称空间前缀
|
实际上,正如我所见,我可以添加名称空间。因为我非常希望看到输出。第一个代码:
XML:
<helptext>
<h6>General configuration options.</h6>
<h2>Changing not yet supported.</h2>
<p>this is a <b>paragraph</b><br/>this is a new line</p>
</helptext>
XSL:
<xsl:template name=\"transformHelptext\">
<xsl:for-each select=\"./child::*\">
<xsl:element name=\"ht:{local-name()}\">
<xsl:choose>
<xsl:when test=\"count(./child::*)>0\">
<xsl:call-template name=\"transformHelptext\"/>
</xsl:when>
<xsl:otherwise>
<xsl:copy-of select=\".\"/>
</xsl:otherwise>
</xsl:choose>
</xsl:element>
</xsl:for-each>
</xsl:template>
到目前为止,一切都很好。 <h6>..</h6>
和<h2>...</h2>
线没有问题。
但是第三行的子节点是<b>
。而“ paragraph”是此行中唯一显示的文本。我在ѭ5陈述中有误。但我无法弄清楚。
谢谢
P.S:ht名称空间是在xsl-stylesheet标记中定义的,它是\'xmlns:ht = \“ http://www.w3.org/1999/xhtml \” \'
附言:我想做的是,可以在我的特定xml节点上应用html标签,样式
没有找到相关结果
已邀请:
2 个回复
疏腔傻小雹
在“ transformHelptext”模板中,选择所有属性和节点并将模板应用于它们。 第二个模板匹配元素节点并更改名称空间。第三个模板匹配属性和文本节点,仅创建一个副本。
视蕉梁拌客
XSLT:
输出XML:
讨论内容: 尽可能避免使用
,因为它会减慢处理器的速度。