2017-03-27 77 views
0

我正在使用一個框架:vaadin,我有一個NodeSet data;,我使用它:data.toXMLString();我得到所有XML,因此沒有任何問題。但我想解析data.toXMLString();將所有信息推送到樹中。我看了很多論壇,在stackoverflow/openclassroom和其他人的對話,但每次XML是一個文件,並且它不適用於我的。在這裏我開始做:JAVA,將NodeSet解析爲XML,解析它並將其推送到樹中

private void getData(NodeSet data){ 
      final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
      try{ 
       final DocumentBuilder builder = factory.newDocumentBuilder(); 
       final Document document = builder.parse(data.toXMLString()); 
       final Element racine = document.getDocumentElement(); 
       System.out.print(racine.getNodeName()); 

       final NodeList racineNoeuds = racine.getChildNodes(); 
       final int nbRacineNoeuds = racineNoeuds.getLength(); 
       for(int i = 0; i < nbRacineNoeuds; i++){ 
        if(racineNoeuds.item(i).getNodeType() == Node.ELEMENT_NODE) { 
         final Element child = (Element) racineNoeuds.item(i); 
        } 
       } 
      } catch (final ParserConfigurationException e){ 
       e.printStackTrace(); 
      } catch (final SAXException e){ 
       e.printStackTrace(); 
      } catch (final IOException e){ 
       e.printStackTrace(); 
      } 
      tree.addItem(data.toXMLString()); 
     } 

我不完成它,因爲當我啓動我的服務器我有這樣的錯誤:在這個

java.net.MalformedURLException

line:final Document document = builder.parse(data.toXMLString());

所以,如果你有任何想法。 謝謝。

回答

1

您對builder.parse(...)的使用是錯誤的。 根據傳遞字符串作爲參數的javadoc,意味着您提供了一個URL來從中檢索文檔。

在將字符串傳遞給方法之前,需要將您的字符串轉換爲InputStream。 請參閱this post如何操作。

+0

謝謝!它現在工作^^ –