将带有文本元素下的多个标记的xml转换为简单文本

时间:2014-01-16 15:04:39

标签: xml xslt

我有xml喜欢

<text>La <concept descr="lnf:dsc#thm1421299" length="29" />composition du
<concept descr="lnf:dsc#thm2265557" length="22" />domaine public fluvial implique
au-delà d'une définition de critères légaux (V. n° <link refpt="N1">1</link> et
<link refpt="N2">2</link>) un travail de caractérisation et de classification des
différentes catégories naturelle, artificielle ou mobilière de
<concept descr="lnf:dsc#thm2265557" length="22" />domaine public fluvial (V. n°Â
<link refpt="N3">3</link> Ã  24).</text>

我希望使用xslt将此xml转换为简单文本,方法是删除概念标记并仅将descr值作为文本输出。

输出,例如

  

La lnf:dsc#thm1421299 composition du lnf:dsc#thm2265557 domaine public   fluvial implique au-delÃndunedéfinitiondecritéelléÿgaux .....

请告诉我如何为此编写xslt规则?

我已为此

编写了此xslt代码
<xsl:template match="concept" mode="concatthem">
    <xsl:value-of select="@descr"/>
  </xsl:template>
<xsl:template match="*|text()" mode="concatthem"/>

它看起来不错吗?

1 个答案:

答案 0 :(得分:0)

如果那真的是你的整个XML文档,你只需要这样做:

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method='text'/>

<xsl:template match="/text">
    <xsl:apply-templates/>
</xsl:template>

<xsl:template match="concept">
    <xsl:value-of select="@descr"/>
</xsl:template>

<xsl:template match="*"/>

</xsl:stylesheet>