2012-02-20 7 views
0

document_1.xmlxsltを使用してドキュメントから並べ替えを行うには?以下

<products> 
    <product> 
     <name>Pen</name> 
     <Quantity>30</Quantity> 
    </product> 
    <product> 
     <name>Pencil</name> 
     <Quantity>20</Quantity> 
    </product> 
    <product> 
     <name>Bag</name> 
     <Quantity>25</Quantity> 
    </product> 
</products> 

document_2.xmlある

<products> 
    <product> 
     <name>Pen</name> 
     <Quantity>10</Quantity> 
    </product> 
    <product> 
     <name>Pencil</name> 
     <Quantity>5</Quantity> 
    </product> 
    <product> 
     <name>Bag</name> 
     <Quantity>2</Quantity> 
    </product> 
</products> 

document.xmlは以下

<products> 
</products> 

です私のXSLですが、私はdocument.xml

document_1.xmldocument_2.xmlを結合するために使用
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="xml" indent="yes"/> 

<xsl:template match="/products"> 
<xsl:copy> 
<xsl:apply-templates select="document('document_1.xml')/*/product"/> 
<xsl:apply-templates select="document('document_2.xml')/*/product"/> 
</xsl:copy> 
</xsl:template> 

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

</xsl:stylesheet> 

Iがxsl:sortタグであるが、それは唯一xsl:for-eachループ内で使用することができる

  1. 数量ASC並べ替え

    <products> 
        <product> 
         <name>Bag</name> 
         <Quantity>2</Quantity> 
        </product> 
        <product> 
         <name>Pencil</name> 
         <Quantity>5</Quantity> 
        </product> 
        <product> 
         <name>Pen</name> 
         <Quantity>10</Quantity> 
        </product> 
        <product> 
         <name>Pencil</name> 
         <Quantity>20</Quantity> 
        </product> 
        <product> 
         <name>Bag</name> 
         <Quantity>25</Quantity> 
        </product> 
        <product> 
         <name>Pen</name> 
         <Quantity>30</Quantity> 
        </product> 
    

答えて

1

以下のような出力を必要とします - 例えば。

<xsl:for-each select="document('document_1.xml')/*/product|document('document_2.xml')/*/product"> 
    <xsl:sort select="Quantity" data-type="number" /> 
    ... 
</xsl:for-each> 
+0

ここで私はこれを私のxslに入れることができますか? – user475464

+0

xsl:template ... xslについてよくわからない場合 - 簡単なアプリケーションで最初にそれを学ぼう – SergeS

+0

このソートは、 "@ * | node()"> このようにしますか? – user475464

関連する問題