Sorun, birden çok XML dosyasını XSL ile birleştirip sıralamak ve geçerli HTML çıktılamak, Firefox> = 3.5 ile görüntülenebilir ve eğer mümkünse IE> = 7. Cevap mümkün olduğunca basit olmalıdır (performans önemli değildir).XSL ile çoklu XML Dosyalarını birleştir ve sırala
Dosya a.xml
<?xml version="1.0"?>
<root>
<tag>cc</tag>
<tag>aa</tag>
</root>
Dosya b.xml
<?xml version="1.0"?>
<root>
<tag>xx</tag>
<tag>bb</tag>
</root>
Dosya index.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="merge.xslt"?>
<list>
<entry>a.xml</entry>
<entry>b.xml</entry>
</list>
Dosya merge.xslt
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ph="http://ananas.org/2003/tips/photo">
<xsl:output method="html"/>
<xsl:template match="list">
<html>
<body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="entry">
<xsl:for-each select="document(.)/root/tag">
<!-- This will only sort the values of a single file -->
<xsl:sort select="." data-type="text" order="ascending" />
- <xsl:value-of select="."/> <br/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Akım çıkışı:
aa
cc
bb
xx
Beklenen çıkışı:
aa
bb
cc
xx
İyi soru, +1. Diğer cevaplardan herhangi birinin karmaşıklığına sahip olmayan tam, çok kısa ve kolay bir çözüm için cevabımı görün: hiçbir uzatma fonksiyonu yok, değişken yok, no xsl: for-each ... –
Ayrıca kapsamlı bir açıklama ekledi. –