将数据从XML文件复制到另一个文件

时间:2011-05-09 08:05:21

标签: xml xslt

我想通过使用xsl将内容从一个XML文件(items.xml)复制到另一个可用='是'的xml文件(product.xml)中。我该怎么做?我有以下XML文件

item.xml:

<items>
    <item available="yes" >
        <name> laptop  </name>
        <quantity>  2 </quantity>
    </item>
    <item available="yes" >
        <name> mouse </name>
        <quantity> 1 </quantity>
    </item>
    <item available="no" >
        <name> keyboad </name>
        <quantity> 0</quantity>
    </item>
</items>

输出:

<items>
  <item>
    <name> laptop </name>
    <quantity> 2 </quantity>
  </item>
  <item>
    <name> mouse </name>
    <quantity> 1 </quantity>
  </item>
  <item available="no">
    <name> keyboad </name>
    <quantity>0</quantity>
  </item>
</items>

3 个答案:

答案 0 :(得分:1)

您需要的XSLT只是身份规则,其中包含您要删除的模板的附加模板,不会产生任何输出。

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="item/@available[.='yes']" />

  <xsl:template match="@* | node()">
    <xsl:copy>
      <xsl:apply-templates select="@* | node()"/>
    </xsl:copy>
  </xsl:template>
</xsl:stylesheet>

第一个模板更具体,并将覆盖下面更通用的模板。

答案 1 :(得分:0)

通过使用xsl(如果可用)&#34;来说&#34;是什么意思? ?
然而,实现目标的唯一方法是解析它。 这取决于您使用的技术,例如我有几种解析XML文件的方法:DOM,SAX,STAX。
祝你好运

答案 2 :(得分:0)

您可以使用<xsl:import><xsl:copy>来实现此目标。