【问题标题】:XSLT replace an element that exists inside another element valueXSLT 替换存在于另一个元素值中的元素
【发布时间】:2018-09-07 13:49:38
【问题描述】:

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

如何将我的 XML 输入中出现的所有元素 QUOTE 替换为作为 QUOTE/ID 属性值的字符串。

【问题讨论】:

    标签: xml xslt xpath xslt-1.0 transformation


    【解决方案1】:

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

    【讨论】:

    • 这正是我所需要的。谢谢你让我更清楚 XSLT。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-01
    • 1970-01-01
    • 2016-07-06
    相关资源
    最近更新 更多