2013-10-30 146 views
1

我想查找XSL中XML元素的值。我的JS選擇了一個XML文檔,但是我需要獲取其他元素。獲取XSLT中的XML元素

我不確定這是否可能或者我的語法錯誤。

這就是我所擁有的。

<td> 
<xsl:value-of select="document(newXMLfile.xml)/Customers/customer/type" /> 
</td> 

新文件的XML看起來像這樣

<?xml version="1.0" encoding="utf-8" ?> 
    <Customers> 
     <customer> 
      <Order>12000</Order> 
      <ID>200</ID> 
      <Date>1 Sep 2010</Date> 
      <type>true</type> 
     </customer> 
</Customers> 
+0

您正在使用Javascript調用XSLT來讀取另一個XML文件? – 2013-10-30 02:38:48

+0

我的JS調用了第一個XML文件和XSL文件。我希望在XSL中調用另一個XML文件。我正在循環,爲永遠進入創造一個新的行。我猜我做錯了,但我無法弄清楚如何用JS中的全局變量來做到這一點。 – Tom

回答

0

使用引號:

<xsl:value-of select="document('newXMLfile.xml')/Customers/customer/type" /> 
+0

謝謝。我猜這是一個改進,因爲現在整個表都沒有加載。之前,這個單元只是空的。所以我認爲它現在正在識別文檔,但我認爲我的XPath表達式是錯誤的? – Tom

+0

@TomNagle,你能否提供'newXMLfile.xml',因爲提供的XML格式不正確。 –

+0

我將它添加到我原來的帖子中。這只是該文件的一個片段。但其餘的是相同的東西,只是不同的元素值。 – Tom

0

與文件()調用調試好的技術是使用呼叫

<div id="debug"> 
    <xsl:copy-of select="document('newXMLfile.xml')"/> 
</div> 

複製文檔直接輸出。這將幫助您確定問題是在讀取文檔還是在選擇文檔中的節點時。

0

(1)請務必查看並提及日誌/控制檯中的任何錯誤消息。如果您沒有直接從命令行運行XSLT處理器,這一點尤其重要。 (您提到從JavaScript內運行它。)

(2)確保正在讀取您的XML端文檔文件。您可能會更改提供給document()的文件名,這是您確定不存在的內容(例如document('XXX_newXMLfile.xml')),以便在文件未被正確指定時驗證您是否看到適當的錯誤消息。如果你必須指定到本地文件的路徑,用這個符號:

'file:///path/newXMLfile.xml' 

是的,這file:後的三個斜槓。在Windows上,path通常會包含驅動器名稱,例如c: