2016-04-29 155 views
0

我新近爲xslt和Xpath.i需要使用xslt將xml轉換爲另一個xml文件。所以我需要得到Name element.i'm使用xpath.but獲取低於錯誤,當我運行我的xslt。我錯過了什麼或出錯了?XML到XML使用Xslt轉換

Error: net.sf.saxon.s9api.SaxonApiException: org.xml.sax.SAXParseException; lineNumber: 22; columnNumber: 22; The prefix "arr" for element "arr:string" is not bound.

輸入file.XML

<Accounts> 
<Account> 
    <Name></Name> 
</Account> 
<Accounts> 

需要得到<Name>元素

我的XPath是(這不是完全的XSLT文件。包括只得到name元素代碼)

  <arr:string> 
      <xsl:value-of select="/Accounts/Account"></xsl:value-of> 
     </arr:string> 

輸出是 - :

  <qqq:Fields> 
       <arr:string>Name</arr:string> 
       <arr:string>XXX</arr:string> 
       <arr:string>xxxxx</arr:string> 
       <arr:string>xxxxx</arr:string> 
      </qqq:Fields> 
+1

你的問題是不明確的,但錯誤信息是:你不能用''無約束力首先給名稱空間添加'arr:'前綴。你有沒有一個你最終輸出應該是什麼樣子的例子? - P.S.請檢查:[mcve] –

+0

感謝您的快速響應。我沒有使用。 – dnsserver

回答

1

您需要對該命名空間進行一些聲明。

像:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:arr="http://myarr.org"> 

或者:

<arr:string xmlns:arr="http://myarr.org"> 
    <xsl:value-of select="/Accounts/Account"/> 
</arr:string> 

嘗試查看:http://www.w3schools.com/xml/xml_namespaces.asp