2012-05-11 60 views
-1

我輸入XML如下:XSLT:對於同一個命名空間不同的值

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> 
    <SOAP-ENV:Header> 
     <ns0:PartyInfo xmlns:ns0="http://www.google.com/"> 
      <name xmlns="">John</name> 
     </ns0:PartyInfo> 
    </SOAP-ENV:Header> 

    <SOAP-ENV:Body> 
     <ns0:OperationRequest xmlns:ns0="http://www.yahoo.com"> 
      <name xmlns="">Mary</name> 
     </ns0:OperationRequest> 
    </SOAP-ENV:Body> 

</SOAP-ENV:Envelope> 

1)第一個問題:在我的XSLT,我只能爲我的「NS0」命名空間值聲明,所以我只能訪問其中一個節點。我怎樣才能訪問它們(最好在同一個xslt文件中)?

2)假設我宣佈

xmlns:ns0="http://www.google.com" 

那麼「約翰」的字符串是多餘的字符輸出:

​​

我可以使用正常化空間來解決這個問題,但它不看起來不錯。

+0

您可以向我們展示XSLT嗎?謝謝! –

回答

1

您在XSLT代碼中使用的名稱空間前綴不必與源文檔中使用的前綴相同。這只是需要匹配的URI。因此,在您的XSLT中,只需將不同的前綴綁定到兩個名稱空間URI即可。