2014-09-01 31 views
0

這是輸入:我無法得到我的XSLT所需的值

<Data> 
    <A_ID>123456789</A_ID> 
    <A_Code>ojhgf</A_Code> 
     <A_Rec> 
     <inner1>2345</inner1> 
     <inner2>14April</inner2> 
     <inner3>15November</inner3> 
     </A_Rec> 
    </Data> 

這是我的XSLT:

<xsl:variable name="AID" select="A_ID" /> 
    <xsl:variable name="ACode" select="A_Code" /> 
    <xsl:for-each xmlns:sch="http://schemas.w3.com/" select="//A_Rec"> 
     <sch:COMPANY> 
      <xsl:value-of select="$AID" /> 
     </sch:COMPANY> 
     <sch:COMPANY_CODE> 
      <xsl:value-of select="$ACode" /> 
     </sch:COMPANY_CODE> 
    </xsl:for-each> 

我試圖獲取值「123456789」在下面提到的路線。 $援助應該保持123456789,我得到所需的值以外for-each循環。 但我沒有得到公司和公司代碼for-each循環內的AID和ACode值。我該怎麼辦?

+0

援助的聲明是什麼呢? – user3928739 2014-09-01 10:31:26

+0

是的,並在ACode – 2014-09-01 10:32:30

+0

我認爲這將是更好地顯示你expectout _output。詢問嘗試的解決方案(變量和for-each)是毫無意義的,因爲它可能無處可用。向我們展示您試圖實現的目標,並指出如何在XSLT中實現。 – 2014-09-01 11:03:18

回答

1

您應該使用「數據/ A_ID」。假設您的上下文節點不是「數據」,因爲我沒有看到任何其他錯誤。

+0

我得到foreach循環外的值。只在裏面它空的 – user3928739 2014-09-01 10:48:10

1

創建後,XSLT變量不能更改它們的值。 有一個很好的答案here,可以幫助您重新設計您的XSLT。

編輯:Lingamurthy CS已正確識別您的XPath的問題,但看看我已鏈接的SO頁面,因爲它仍然可能是有用的。

+0

我不想改變變量AID和ACode的值。我正試圖將其分配給不同的標籤?這些XSLT變量是否有空間? – user3928739 2014-09-01 10:49:04

1

看來你想輸出A_IDA_Code在不同的節點與不同的命名空間。

試試這個:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    version="1.0"> 

    <xsl:strip-space elements="*"/> 

    <xsl:output indent="yes"/> 

    <xsl:template match="/"> 
     <root xmlns:sch="http://schemas.w3.com/"> 
      <xsl:apply-templates select="Data/A_ID|Data/A_Code"/> 
     </root> 
    </xsl:template> 

    <xsl:template match="Data/A_ID"> 
     <xsl:element name="sch:COMPANY" namespace="http://schemas.w3.com/"> 
      <xsl:value-of select="."/> 
     </xsl:element> 
    </xsl:template> 

    <xsl:template match="Data/A_Code"> 
     <xsl:element name="sch:COMPANY_CODE" namespace="http://schemas.w3.com/"> 
      <xsl:value-of select="."/> 
     </xsl:element> 
    </xsl:template> 

</xsl:stylesheet> 
+0

我得到了foreach循環之外的值。只有在它內部的空 – user3928739 2014-09-01 10:40:32

+0

你可以編輯你的問題,幷包括你想要的輸出? – 2014-09-01 11:10:45

+0

謝謝你的建議Joel。我更新了我的問題。 – user3928739 2014-09-01 11:19:44

相關問題