这是我的输入xml
<para>
<a><b>this is a text</b></a>
</para>
这是我预期的输出
<para>
this is a text
</para>
如何删除所有&#34; a&#34;标签和&#34; b&#34;仅使用标签,使用xslt感谢
不会影响文本答案 0 :(得分:1)
从身份转换模板
开始<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
然后添加
<xsl:template match="a | b">
<xsl:apply-templates/>
</xsl:template>
处理你的元素。
答案 1 :(得分:0)
<xsl:template match="//para">
<xsl:copy>
<xsl:value-of select="."></xsl:value-of>
</xsl:copy>
</xsl:template>
(或避免其他子元素的空格:
<xsl:template match="//para">
<xsl:copy>
<xsl:value-of select="./*/*/text()"></xsl:value-of>
</xsl:copy>
</xsl:template>
答案 2 :(得分:0)
问题解决..
<xsl:strip-space elements="*"/>
<xsl:template match="*">
<xsl:copy>
<xsl:apply-templates select="node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="//*/text()">
<xsl:if test="normalize-space(.)">
<xsl:value-of select=
"concat(normalize-space(.), '
')"/>
</xsl:if>
<xsl:apply-templates />
</xsl:template>
<xsl:template match="*[not(node())]" />