带有父级的XML子集

时间:2014-05-08 09:19:24

标签: xml xpath

我有以下XML

<CATALOG>
  <PLANT>Bloodroot</PLANT>
  <PLANT>Columbine</PLANT>
  <PLANT>Marsh Marigold</PLANT>
  <PLANT>Cowslip</PLANT>
</CATALOG>

并尝试使用XPATH过滤前两个但包括父CATALOG

<CATALOG>
  <PLANT>Bloodroot</PLANT>
  <PLANT>Columbine</PLANT>
</CATALOG>

 /CATALOG/PLANT[position() <=2]

提取没有目录的植物,但我怎么说:添加封闭的CATALOG?

1 个答案:

答案 0 :(得分:0)

检查:XPATH: select subset of xml file

你应该写一个xsl来避免这个问题:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    <xsl:template match="PLANT[position() <=2]" />

    <!--identity template to copy all nodes and attributes to output -->
    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>

</xsl:stylesheet>