2016-06-28 10 views
0

Ich bin ein XML mit und mag Below abrufen undWelches ist der richtige Ansatz von beiden?

Werte verketten ist die XML-Beispiel, aus denen wir die Werte abrufen müssen:

<?xml version="1.0" encoding="UTF-8"?> 
<Document> 
<docBody> 
    <employee> 
    <employeeNumber>595</employeeNumber> 
    </employee> 
    <employeeAddress> 
    <empAddress>1</empAddress> 
    <empAddress2>1</empAddress2> 
    </employeeAddress> 
</docBody> 
<Messages /> 
</Document> 

Method1:

<xsl:template match="employee"> 

<xsl:variable name="empNbr"> 
<xsl:value-of select="employeeNumber"/> 
</xsl:variable> 

<xsl:variable name="empAddress"> 
<xsl:value-of select="../employeeDetails/employeeAddress"/> 
</xsl:variable> 

<xsl:variable name="empAddress2"> 
<xsl:value-of select="../employeeDetails/empAddress2"/> 
</xsl:variable> 

<xsl:value-of select="concat($empNbr,$empAddress,$empAddress2)"/> 

</xsl:template> 

Method2 :

<xsl:template match="employee"> 

<xsl:value-of select="concat(<xsl:value-of select="employeeNumber"/>, 
<xsl:value-of select="../employeeDetails/employeeAddress"/>, 
<xsl:value-of select="../employeeDetails/empAddress2"/>)"/> 

</xsl:template> 

Vielen Dank im Voraus.

Antwort

0

Es ist in der Regel besser, wie Variablendeklarationen schreiben so

<xsl:variable name="empNbr" select="employeeNumber" /> 

Das bedeutet empNbr verweist jetzt die employeeNumber direkt. Wenn Sie xsl:value-of verwenden, erhält dies effektiv den Textwert empNbr und weist es der Variablen zu.

Ihre zweite Methode ist keine gültige XSLT. Der Ausdruck, den Sie suchen, ist dies ...

<xsl:value-of select="concat(employeeNumber, ../employeeDetails/employeeAddress, ../employeeDetails/empAddress2)" /> 

Oder Sie drei separate xsl:value-of Abschluss haben könnte.

<xsl:value-of select="employeeNumber"/> 
<xsl:value-of select="../employeeDetails/employeeAddress"/> 
<xsl:value-of select="../employeeDetails/empAddress2"/> 
Verwandte Themen