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

XSLT replace an element that exists inside another element value

我是 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。

添加到身份转换一个特殊的模板来处理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元素。