2016-06-28 8 views
0

私はXMLを有し、かつ値以下2つのうちどれが正しいアプローチですか?

を取得し、連結するのが好きだが、我々は値を取得する必要があり、そこからサンプルXMLです:

<?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> 

方法1:

<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> 

方法2 :

<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> 

ありがとうございます。

答えて

0

これはempNbrは今直接employeeNumberを参照する意味ので

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

のような変数宣言を書くことは通常方が良いでしょう。 xsl:value-ofを使用することにより、これは実質的にempNbrというテキスト値を取得し、それを変数に割り当てます。

2番目の方法は有効なXSLTではありません。あなたが探している表現が、これは...

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

それとも、3つの別々のxsl:value-ofの文を持っている可能性があります。

<xsl:value-of select="employeeNumber"/> 
<xsl:value-of select="../employeeDetails/employeeAddress"/> 
<xsl:value-of select="../employeeDetails/empAddress2"/> 
関連する問題