【问题标题】:Copying selected nodes and children with XLST使用 XSLT 复制选定的节点和子节点
【发布时间】:2012-08-31 00:13:43
【问题描述】:

我在进行 XSLT 转换时遇到了问题,希望有人能帮助我。 这是我正在使用的数据的结构,

<excelFiles>
    <sheet>
        <row index='1'>
            <column_1>allowedValue</column_1>
            <column_2>US</column_2>
             <column_3>allowedValue</column_3>
        </row>
        <row index='1'>
           <column_1>notAllowedValue</column_1>
           <column_2>US</column_2>
           <column_3>allowedValue</column_3>
        </row>
  </sheet>
</excelFiles>

我要做的只是复制没有子节点包含无效数据的行。使用 XSLT 可以做到这一点吗?我只能使用 XSLT 来解决这个问题。

为清楚起见进行编辑:无效数据是节点中的唯一值是“-”字符。

【问题讨论】:

    标签: xml xslt


    【解决方案1】:

    从身份转换开始,然后添加一个与您想要的节点匹配并忽略它们的无操作模板:

    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <!-- ignore any row element that has any child element whose text value is
           a single hyphen -->
      <xsl:template match="row[* = '-']" />
    
      <!-- copy everything else -->
      <xsl:template match="@*|node()">
        <xsl:copy>
          <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
      </xsl:template>
    </xsl:stylesheet>
    

    【讨论】:

    • 这完全符合我的要求,我的主要问题是在复制之后有我的匹配模板。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-12
    • 1970-01-01
    • 1970-01-01
    • 2011-07-12
    相关资源
    最近更新 更多