2014-01-22 57 views
0

我需要一些想法。Java XML解析器與Sharepoint xml(http get)

我正在爲SharePoint站點提供桌面通知工具。 我通過HTTP請求獲得當前的新聞源: 域/ _api/social.feed /我的/ timelinefeed(MaxThreadCount = 1) 我得到的最後發表的文章的所有評論意見,並將其保存在一個XML文件是這樣的:

<entry> 
<element> 
<name>is here an area, where a person posted</name> 
<url>null</url> 
<text>null</text> 
</element> 
<element> 
<name>Kaito23</name> 
<url>domain.de/something....</url> 
<text>Hey, I posted something</text> 
</element> 
<element>Comment1</element> 
<element>Comment2</element> 
</entry> 

我想這樣,但它設置了很多空指針的

File stocks = new File(xmlFile); 
     DocumentBuilderFactory dbFactory = DocumentBuilderFactory 
       .newInstance(); 
     DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); 
     Document doc = dBuilder.parse(stocks); 
     doc.getDocumentElement().normalize(); 

     NodeList nodes = doc.getElementsByTagName("d:element"); 

     Node node = nodes.item(0); 
     Element element = (Element) node; 

     permalink = getValue("d:Permalink", element); 
     createdTime = getValue("d:CreatedTime", element); 
       statusText = getValue("d:StatusText", element); 
     // creatorName = getValue("d:Name", element); 
     // areaName = getValue("d:Name", element); 
     imageURL = getValue("d:ImageUri", element); 
    } catch (Exception ex) { 
     ex.printStackTrace(); 
    } 

對我有什麼想法如何解決呢?

問候怪盜

+0

問題尚不清楚..ü要做些什麼?清楚地解釋..你想從XML文件中讀取什麼? – Naren

+0

抱歉>> 我只需要名稱和文本從第一個 和從第二個名字 Kaito

回答

0

這是你如何能做到這

try { 

     File fXmlFile = new File(
       "D:\\StackOverFlow\\SAXParserRelated\\src\\stocks.xml"); 
     DocumentBuilderFactory dbFactory = DocumentBuilderFactory 
       .newInstance(); 
     DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); 
     Document doc = dBuilder.parse(fXmlFile); 

     doc.getDocumentElement().normalize(); 

     System.out.println("Root element :" 
       + doc.getDocumentElement().getNodeName()); 

     NodeList nList = doc.getElementsByTagName("element"); 

     System.out.println("----------------------------"); 

     for (int temp = 0; temp < nList.getLength(); temp++) { 

      Node nNode = nList.item(temp); 

      System.out.println("\nCurrent Element :" + nNode.getNodeName()); 

      if (nNode.getNodeType() == Node.ELEMENT_NODE) { 

       Element eElement = (Element) nNode; 
       if ((eElement.hasChildNodes()) 
         && (eElement.getElementsByTagName("name").item(0) != null) 
         && (eElement.getElementsByTagName("text").item(0) != null)) { 

        System.out.println(" Name : " 
          + eElement.getElementsByTagName("name").item(0) 
            .getTextContent()); 
        System.out.println("Text : " 
          + eElement.getElementsByTagName("text").item(0) 
            .getTextContent()); 
       } 

      } 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

讓我知道如果u面對任何問題