XSLT替换另一个元素值内存在的元素

时间:2018-09-07 13:49:38

标签: xml xslt xpath xslt-1.0 transformation

我是XSLT的新手(使用XSLT v1.0),并且输入以下内容:

<SUMMARY>
<TITLE>Lorem ipsum dolor <QUOTE ID="replace with this string"/> sit vel eu. 
</TITLE>
<P> Lorem ipsum dolor <QUOTE ID="replace with this string"/> sit vel eu. </P>
</SUMMARY>

<REFERENCE>
<TI>Lorem ipsum dolor <QUOTE ID="replace with this string"/> sit vel eu. 
</TI>
<P> Lorem ipsum dolor <QUOTE ID="replace with this string"/> sit vel eu. </P>
</REFERENCE>

如何用一个字符串(它是QUOTE / ID属性的值)替换XML输入中所有出现的QUOTE元素。

1 个答案:

答案 0 :(得分:0)

向身份转换添加特殊模板以处理QUOTE

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="@*|node()">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
  </xsl:template>

  <xsl:template match="QUOTE">
      <xsl:value-of select="@ID"/>
  </xsl:template>

</xsl:stylesheet>

身份转换会将所有内容复制到输出XML,特殊的QUOTE模板将复制其@ID属性的值来代替QUOTE元素。