Zaten işlenmiş düğümlerin işlenmesini önlemek için bir yol var mı?Zaten işlenmiş düğümlerin işlenmesini atla
Girdi XML
<?xml version="1.0" encoding="UTF-8"?>
<root>
<node1>node1.1</node1>
<node2>node2.1</node2>
<node2>node2.2</node2>
<node1>node1.2</node1>
</root>
XSL Gördüğünüz gibi
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="root">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="node1">
[Node1]:<xsl:value-of select="."></xsl:value-of>
<xsl:apply-templates select="following-sibling::node2"/>
[End node1]
</xsl:template>
<xsl:template match="node2">
[Node2]:<xsl:value-of select="."></xsl:value-of>
</xsl:template>
</xsl:stylesheet>
Çıktı
<?xml version="1.0" encoding="UTF-8"?>
[Node1]:node1.1
[Node2]:node2.1
[Node2]:node2.2
[End node1]
[Node2]:node2.1
[Node2]:node2.2
[Node1]:node1.2
[End node1]
şablonHer bir düğüm 2 elemanı için iki kezuygulanmıştır. Düğüm1 şablonundan bir kez ve XSLT işlemci düğüm 2 öğesini dönüştürdüğünde ikinci kez uygulanır.
xsl:template match="node2"
ikinci kez uygulanmasını önlemek için herhangi bir çözüm var mı? Düğüm2'nin işlenmesini durdurulamıyorum.
Önemli Bu örnek yalnızca daha karmaşık kullanım durumunun bir öykünmesidir. Bu, ek kısıtlamalarımız olduğu anlamına gelir - kök öğe işleme için şablonu değiştiremeyiz.
Öğelerin işlenmesini durdurmanın veya başka öğelere işlemeyi gerçekleştirmenin herhangi bir yolu olup olmadığını bilmek istiyorum.
ne zaman * * 'node2' şablon uygulanmalıdır? Sadece "node1" öğelerinden önce oluşan "node2" elemanlarına mı? – AakashM