2013-06-26 38 views
0

iam使用mgwt構建移動應用程序。這個應用程序包含列表哪些內容來自xml文件。 我正嘗試通過應用程序將新內容添加到這些xml文件中。gwt將新的子節點添加到xml文件中

下面是XML文件:

<?xml version="1.0" encoding="UTF-8"?> 
<root> 
    <options> 
      <option>c1 A</option> 
      <option>c1 B</option> 
    </options> 
</root> 

蔭試圖將<選項>家長中添加一個新的

<option>c1 C </option> 

標籤,所以結果會是這樣。

<?xml version="1.0" encoding="UTF-8"?> 
<root> 
    <options> 
      <option>c1 A</option> 
      <option>c1 B</option> 
      <option>c1 C </option> 
    </options> 
</root> 

Iam用下面的代碼嘗試它,但沒有任何反應。

RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, GWT.getHostPageBaseURL()+"folderName/fileName.xml"); 
    try{ 
     builder.sendRequest(null, new RequestCallback() { 

      @Override 
      public void onResponseReceived(Request request, Response response) { 
       Document document = XMLParser.parse(response.getText()); 


       Element elementRoot = document.getDocumentElement(); 

       Element options = (Element)elementRoot.getElementsByTagName("options").item(0); 

       Element optionElement = document.createElement("option"); 
       optionElement.appendChild(document.createTextNode("c1 C")); 

       options.appendChild(optionElement); 

      } 

      @Override 
      public void onError(Request request, Throwable exception) { 

      } 
     }); 
    }catch(RequestException e){ 
     Window.alert("Unable to build the request."); 
    } 

出了什麼問題?請幫忙。

+0

該代碼將爲現有Document對象添加一個新的

回答

1

如果您在phonegap容器內運行代碼,GWT.getHostPageBaseURL()將指向設備上的file:// somepath。我猜你想從服務器加載數據。您將需要使用正確的網址。

另一方面,您應該知道瀏覽器中的XML處理非常緩慢,應該考慮使用JSON作爲替代格式。

+0

不,應用程序的最高部分由單元列表組成,這些單元格中表示的內容來自XML文件,這些文件分別存儲在android-mgwt的assets/www文件夾中的mgwt項目的war文件夾中-app。 xml文件的內容通過RequestBuilder加載到CellLists中。我想通過應用程序將這些新數據添加到這些xml文件中。這些新信息應在刷新後顯示在單元格中。 – Pero