我在将html添加到所选节点的父级时遇到了一些麻烦。我有一个xml文档:
<component>
<section>
<text>
<content>
some text 1
</content>
<content>
some text 2
</content>
</text>
</section>
<section>
<text>
<otherElements></otherElements>
</text>
</section>
.....
</component>
有很多部分,有些部分在文本元素下有内容元素,有些则没有。我只使用模板来应用于具有内容元素的模板并具有输出,其中每个文本元素都有一个表,每个内容元素有一行:
<table>
<tbody>
<tr><td>some text 1</td>
<tr><td>some text 2</td>
</tbody>
</table>
当我用
选择内容元素时<xsl:template match="section/text/content">
我可以添加行,但我不知道如何将table和tbody标签添加到父节点。如果我从
开始<xsl:template match="section/text">
它还添加了其他元素的文本元素,我也不想要。
答案 0 :(得分:3)
使用match="section/text [content]"
答案 1 :(得分:1)
这样的事情应该做(未经测试,只是为了说明这个想法):
<xsl:template match="/">
<xsl:apply-templates select="//component/section[text/content]"/>
</xsl:template>
<xsl:template match="section[text/content]">
<table><tbody>
<xsl:apply-templates select="text/content"/>
</tbody></table>
</xsl:template>
<xsl:template match="content">
<tr><td><xsl:value-of select="text()"/></td></tr>
</xsl:template>