2012-04-20 20 views
14

aşağıdaki kardeş olsun ve bu benim XML olduğunu nasılBen XSLT için oldukça yeni XSLT'de

<projects> 
    <project> 
     <number>1</number> 
     <title>Project X</title> 
    </project> 
    <project> 
     <number>2</number> 
     <title>Project Y</title> 
    </project> 
    <project> 
     <number>3</number> 
     <title>Project Z</title> 
    </project> 
</projects> 

Bir projem var ve onu takip kardeş almak istiyorsanız, bunu nasıl yapabilirim ?

Bu kod benim için çalışmak görünmüyor:

/projects[title="Project X"]/following-sibling 

cevap

28

Bu aslında tamamen XPath sorudur.

Kullanım:

/*/project[title = 'Project X']/following-sibling::project[1] 

Bu seçer herhangi ilk XML belgesinde üst eleman ve en azından onun title biri olan dize değerinin bir çocuktur herhangi Project elemanın Project kardeş şu Çocuklar "Project X" dizgisidir.

XSLT - doğrulaması:

<projects> 
    <project> 
     <number>1</number> 
     <title>Project X</title> 
    </project> 
    <project> 
     <number>2</number> 
     <title>Project Y</title> 
    </project> 
    <project> 
     <number>3</number> 
     <title>Project Z</title> 
    </project> 
</projects> 

XPath ifadesi değerlendirildi ve doğru bir şekilde seçilmiş bir eleman olup: bu dönüşüm sağlanmaktadır XML belgesi uygulanır

<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="/"> 
    <xsl:copy-of select= 
     "/*/project[title = 'Project X']/following-sibling::project[1]"/> 
</xsl:template> 
</xsl:stylesheet> 

çıkışa kopyalanır:

<project> 
    <number>2</number> 
    <title>Project Y</title> 
</project> 
+0

Hey Dimitre, bu bir çekicilik gibi çalışır. Çok teşekkürler! – Tintin81

+0

@ Tintin81: Rica ederim. –