如何摆脱<xsl:copy-of> </xsl:copy-of>中的元素

时间:2014-04-08 17:45:30

标签: xml xslt-2.0

尝试使用XSLT在HTML中显示XML内容。 我在用

<xsl:copy-of select = "childNode">
</xsl:copy-of>

当我使用上面的那个时,它也会显示属性。

<childNode>
<Team>
<TeamName>Team-A</TeamName>
</Team>
<Team>
<TeamName>Team-B</TeamName>
</Team>
<Team>
<TeamName>Team-C</TeamName>
</Team>
</childNode>

我不想显示元素。

2 个答案:

答案 0 :(得分:1)

我没有在您的XML示例中看到任何属性。如果您只想复制childNode元素的内容,那么您可以使用<xsl:copy-of select="childNode/*"/>或者更好地编写模板

<xsl:template match="childNode">
  <xsl:copy-of select="*"/>
</xsl:template>

答案 1 :(得分:1)

使用xsl:copy代替xsl:copy-of仅复制所选节点。

使用xsl:apply-templates通过定义与子项匹配的模板来控制子元素的处理方式。

如果您要复制childNode元素及其属性并添加一些元素而不使用(通常首选的)xsl:apply-templates路线,请尝试:

<xsl:copy select="childNode">
   <xsl:copy-of select="@*"/>
   <!-- add further content here as needed -->
</xsl:copy>

可能性比比皆是,但如果这些答案都不符合您的需求,您将不得不澄清您的问题。