2017-03-27 56 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

谢谢!它现在工作^^ –