我的 XSLT 類型的節點不工作,請檢查我的 xsl 有什麼問題。我只能使用 xslt 1.0。
輸入 XML 文件
<?xml version="1.0" encoding="UTF-8"?>
<ST_Loop>
<S5_Loop>
<S5>
<S501>1</S501>
<S502>LD</S502>
</S5>
<G62>
<G6202>20210929</G6202>
<G6204>010000</G6204>
</G62>
<N1_Loop>
<N1>
<N101>Milford</N101>
</N1>
<N3>
<N301>49 Sumner St</N301>
</N3>
<N4>
<N401>Worcester</N401>
<N403>01757-1656</N403>
<N404>US</N404>
</N4>
</N1_Loop>
<OID_Loop/>
</S5_Loop>
<S5_Loop>
<S5>
<S501>3</S501>
<S502>LD</S502>
</S5>
<G62/>
<N1_Loop>
<N1>
<N101>MOISON ACE HDWE OF BEDFORD LLC</N101>
</N1>
<N3>
<N301>297 Great Rd</N301>
</N3>
<N4>
<N401>Middlesex</N401>
<N403>01730-2802</N403>
<N404>US</N404>
</N4>
</N1_Loop>
<OID_Loop/>
</S5_Loop>
<S5_Loop>
<S5>
<S501>5</S501>
<S502>LD</S502>
</S5>
<G62/>
<N1_Loop>
<N1>
<N101>WATERS & BROWN, INC. 02</N101>
</N1>
<N3>
<N301>13 Elliott St</N301>
</N3>
<N4>
<N401>Essex</N401>
<N403>01915-3308</N403>
<N404>US</N404>
</N4>
</N1_Loop>
<OID_Loop/>
</S5_Loop>
<S5_Loop>
<S5>
<S501>2</S501>
<S502>UL</S502>
</S5>
<G62>
<G6202>20210929</G6202>
<G6204>040000</G6204>
</G62>
<LAD/>
<N1_Loop>
<N1>
<N101>ST</N101>
<N102>MOISON ACE HDWE OF BEDFORD LLC</N102>
</N1>
<N3>
<N301>297 Great Rd</N301>
</N3>
<N4>
<N401>Bedford</N401>
<N402>MA</N402>
<N403>01730-2802</N403>
<N404>US</N404>
</N4>
</N1_Loop>
</S5_Loop>
<S5_Loop>
<S5>
<S501>4</S501>
<S502>UL</S502>
</S5>
<G62>
<G6202>20210929</G6202>
<G6204>040000</G6204>
</G62>
<LAD/>
<N1_Loop>
<N1>
<N101>ST</N101>
<N102>WATERS & BROWN, INC. 02</N102>
</N1>
<N3>
<N301>13 Elliott St</N301>
</N3>
<N4>
<N401>Beverly</N401>
<N402>MA</N402>
<N403>01915-3308</N403>
<N404>US</N404>
</N4>
</N1_Loop>
</S5_Loop>
<S5_Loop>
<S5>
<S501>6</S501>
<S502>UL</S502>
</S5>
<G62>
<G6202>20210929</G6202>
<G6204>040000</G6204>
</G62>
<LAD/>
<N1_Loop>
<N1>
<N101>ST</N101>
<N102>HOME DECOR GROUP 03</N102>
</N1>
<N3>
<N301>450 Paradise Rd</N301>
</N3>
<N4>
<N401>Swampscott</N401>
<N402>MA</N402>
<N403>01907-1300</N403>
<N404>US</N404>
</N4>
</N1_Loop>
</S5_Loop>
</ST_Loop>
XSLT 文件:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/ST_Loop/S5_Loop">
<xsl:copy>
<xsl:apply-templates>
<xsl:sort data-type="number" select="/ST_Loop/S5_Loop/S5/S501"/>
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
我想要的輸出(根據 S501 值對 S5_Loop 進行排序)
<?xml version="1.0" encoding="UTF-8"?>
<ST_Loop>
<S5_Loop>
<S5>
<S501>1</S501>
<S502>LD</S502>
</S5>
<G62>
<G6202>20210929</G6202>
<G6204>010000</G6204>
</G62>
<N1_Loop>
<N1>
<N101>Milford</N101>
</N1>
<N3>
<N301>49 Sumner St</N301>
</N3>
<N4>
<N401>Worcester</N401>
<N403>01757-1656</N403>
<N404>US</N404>
</N4>
</N1_Loop>
<OID_Loop />
</S5_Loop>
<S5_Loop>
<S5>
<S501>2</S501>
<S502>UL</S502>
</S5>
<G62>
<G6202>20210929</G6202>
<G6204>040000</G6204>
</G62>
<LAD />
<N1_Loop>
<N1>
<N101>ST</N101>
<N102>MOISON ACE HDWE OF BEDFORD LLC</N102>
</N1>
<N3>
<N301>297 Great Rd</N301>
</N3>
<N4>
<N401>Bedford</N401>
<N402>MA</N402>
<N403>01730-2802</N403>
<N404>US</N404>
</N4>
</N1_Loop>
</S5_Loop>
<S5_Loop>
<S5>
<S501>3</S501>
<S502>LD</S502>
</S5>
<G62 />
<N1_Loop>
<N1>
<N101>MOISON ACE HDWE OF BEDFORD LLC</N101>
</N1>
<N3>
<N301>297 Great Rd</N301>
</N3>
<N4>
<N401>Middlesex</N401>
<N403>01730-2802</N403>
<N404>US</N404>
</N4>
</N1_Loop>
<OID_Loop />
</S5_Loop>
<S5_Loop>
<S5>
<S501>4</S501>
<S502>UL</S502>
</S5>
<G62>
<G6202>20210929</G6202>
<G6204>040000</G6204>
</G62>
<LAD />
<N1_Loop>
<N1>
<N101>ST</N101>
<N102>WATERS & BROWN, INC. 02</N102>
</N1>
<N3>
<N301>13 Elliott St</N301>
</N3>
<N4>
<N401>Beverly</N401>
<N402>MA</N402>
<N403>01915-3308</N403>
<N404>US</N404>
</N4>
</N1_Loop>
</S5_Loop>
<S5_Loop>
<S5>
<S501>5</S501>
<S502>LD</S502>
</S5>
<G62 />
<N1_Loop>
<N1>
<N101>WATERS & BROWN, INC. 02</N101>
</N1>
<N3>
<N301>13 Elliott St</N301>
</N3>
<N4>
<N401>Essex</N401>
<N403>01915-3308</N403>
<N404>US</N404>
</N4>
</N1_Loop>
<OID_Loop />
</S5_Loop>
<S5_Loop>
<S5>
<S501>6</S501>
<S502>UL</S502>
</S5>
<G62>
<G6202>20210929</G6202>
<G6204>040000</G6204>
</G62>
<LAD />
<N1_Loop>
<N1>
<N101>ST</N101>
<N102>HOME DECOR GROUP 03</N102>
</N1>
<N3>
<N301>450 Paradise Rd</N301>
</N3>
<N4>
<N401>Swampscott</N401>
<N402>MA</N402>
<N403>01907-1300</N403>
<N404>US</N404>
</N4>
</N1_Loop>
</S5_Loop>
</ST_Loop>
代替:
<xsl:template match="/ST_Loop/S5_Loop">
<xsl:copy>
<xsl:apply-templates>
<xsl:sort data-type="number" select="/ST_Loop/S5_Loop/S5/S501"/>
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
做:
<xsl:template match="/ST_Loop">
<xsl:copy>
<xsl:apply-templates>
<xsl:sort data-type="number" select="S5/S501"/>
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
即匹配要排序的節點的父元素,並將模板應用於子元素,使用排序鍵的相對路徑。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句