代码之家  ›  专栏  ›  技术社区  ›  User501

需要组合所有元素值

  •  0
  • User501  · 技术社区  · 7 年前

    我拥有的Xml:

    <h1>aaa</h1>
    <h1>bbb</h1>
    <h1>ccc</h1>
    

       <xsl:template match="h1[h1]">
          <h1><xsl:value-of select="h1"/></h1>
       </xsl:template>
    

    但我现在觉得

    <h1>aaa</h1>
    <h1>bbb</h1>
    <h1>ccc</h1>
    

    <h1>aaa bbb ccc</h1>
    

    请推荐一些代码。提前感谢

    1 回复  |  直到 7 年前
        1
  •  1
  •   Valdi_Bo    7 年前

    您的代码: <h1><xsl:value-of select="h1"/></h1>

    父母亲 标签(包含 h1 h1 ,以防止原件的复制 标识模板中的元素。

    请看以下脚本:

    <?xml version="1.0" encoding="UTF-8" ?>
    <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
      <xsl:output method="xml" encoding="UTF-8" indent="yes" />
      <xsl:strip-space elements="*"/>
    
      <xsl:template match="main">
        <xsl:copy>
          <h1><xsl:value-of select="h1"/></h1>
          <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
      </xsl:template>
    
      <xsl:template match="h1"/>
    
      <xsl:template match="@*|node()">
        <xsl:copy><xsl:apply-templates select="@*|node()"/></xsl:copy>
      </xsl:template>
    </xsl:transform>
    

    <main>
      <h1>aaa</h1>
      <h1>bbb</h1>
      <h1>ccc</h1>
      <h2>xxx</h2>
    </main>
    

    <main>
       <h1>aaa bbb ccc</h1>
       <h2>xxx</h2>
    </main>