我是xslt的新手,我正在尝试转换以下xml:
<li>Hi there <person>David</person> , how is it going? </li>
我想将此转换为另一个xml,如:
<response>Hi there PERSON_NAME , how is it going? </response>
到目前为止我所拥有的是:
<xsl:template match="li">
<response><xsl:value-of select="text()"/>
<xsl:choose>
<xsl:when test="person">
<xsl:text> PERSON_NAME </xsl:text>
</xsl:when>
</xsl:choose>
</response>
</xsl:template>
这是我得到的输出:
<response>Hi there , how is it going? PERSON_NAME</response>
不完全是我想要的。我是xslt的新手并且读了一本书。我没有找到任何一个例子,其中xml元素的文本值之间有一个子节点。不确定xslt是否可以处理这个问题,或者我错过了一些基本的东西。任何帮助将不胜感激。我正在使用xslt 2.0
答案 0 :(得分:0)
您可以简单地定义两个模板来处理您的情况。
<xsl:template match="li">
<response>
<xsl:apply-templates/>
</response>
</xsl:template>
<xsl:template match="person">
<xsl:text>PERSON_NAME</xsl:text>
</xsl:template>