2016-03-28 47 views
1

我在存在數據庫服務器上使用XSLTforms,我試圖用方法=「後」加載文件,沒有運氣。下面是模式的一個例子:xsltforms提交方法=「發佈」:未知的XML根元素

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xf="http://www.w3.org/2002/xforms"> 
<head> 
    <xf:model> 
     <xf:instance xmlns="" id="default"> 
      <data> 
       <x> 
        <a></a> 
        <b></b> 
        <c></c> 
       </x> 
      </data> 
     </xf:instance> 
     <xf:submission id="read-from-file" method="post" replace="instance" instance="default"> 
      <xf:resource value="'../data/test.xml'"></xf:resource> 
     </xf:submission> 
    </xf:model> 
</head> 

,這裏是我試圖提交的test.xml:

<data> 
    <x> 
    <a>test</a> 
    <b>test</b> 
    <c>test</c> 
    </x> 
</data> 

當我觸發了提交,我得到錯誤:

xsltforms.js:8115 POST ../data/test.xml 400 (Unknown XML root element: data)

如果使用「get」方法,只要文件足夠小 - 如果我嘗試使用method =「get」加載更大的文件,它最初會加載,但在加載一次後嘗試重新加載它,我得到錯誤「414(請求URI過長)「。我搜索了一個答案,並建議在這種情況下正確的方法是使用「後」。我是xforms中的新成員,顯然我做了錯誤的事情,所以我需要幫助來完成這項工作... 預先感謝您!

回答

2

在處理提交問題時,使用瀏覽器調試器來檢查發送的內容和接收的內容是很有趣的。

GET方法顯然是用來獲取文件內容的方法,而PUT和POST則用於將內容推送到文件中。

默認情況下,默認實例被序列化爲GET參數。我認爲這是URI太長時間警報的原因。既然你只是想得到一個文件內容,你可以請再次嘗試「序列化」屬性設置爲「無」?

+0

非常感謝!你保存了我的一天:)是的 - 檢查Firebug和Chrome DevTools的行爲是我嘗試的第一件事情...我看到了長URI,但我不知道如何擺脫它,被序列化爲GET參數。首先,我設法在提交之前刪除所有元素,但是當文件大小增加時,它停止工作。現在看起來序列化=「無」做這項工作。我希望在這個問題上再也不需要再打擾你了。 – nassoo