Bu dönüşüm :
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="contactGrp">
<xsl:copy>
<xsl:apply-templates select="node()|@*">
<xsl:sort select="@name"/>
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
sağlanan XML belgesindeki uygulanır:
<contactGrp name="People"> <contactGrp name="Developers"> <customer name="Brad" /> <customer name="Mike" /> <customer name="Smith" /> </contactGrp> <contactGrp name="QA"> <customer name="abi" /> <customer name="John" /> </contactGrp> </contactGrp>
not Do:
<contactGrp name="People">
<contactGrp name="Developers">
<customer name="Mike" ></customer>
<customer name="Brad" ></customer>
<customer name="Smith" ></customer>
</contactGrp>
<contactGrp name="QA">
<customer name="John" ></customer>
<customer name="abi" ></customer>
</contactGrp>
</contactGrp>
aranan, doğru sonucu üretir doğru sonuçlar her zaman üretilecek - contactGrp
öğelerinin iç içe geçme düzeyinden bağımsız olarak
Kafam karıştı çünkü xpath 'etiketi ... Eğer bir düğüm seti seçmek istiyorsanız, o zaman doğru teknoloji ve XPath olabilir. Bir düğüm kümesini düzgün bir şekilde sıralamak istiyorsanız, XPath motor ana diline ihtiyacınız olacaktır. Bir XML ağacını dönüştürmek istiyorsanız, standart kaynak XSLT'dir. –
Biliyorum, sorunum için çalışmayı başaramıyorum. – vondip
İyi soru, +1. "ContactGrp" öğelerinin herhangi bir yuvalanma seviyesi için çalışan eksiksiz, kısa ve kolay bir XSLT çözümü için yanıtımı görün. :) –