2012-06-15 46 views
0

我得到了我需要的確切輸出,但是我必須爲我的程序使用POJO類,我搜索了很多問題,但我沒有明確的想法。幫助我解決這個問題,在此先感謝,我的代碼爲xml pharse在下面給出的Java。如何在java中爲xml解析創建POJO類?

編碼ReadAndPrintXMLFile ::

import org.w3c.dom.*; 

import javax.xml.parsers.DocumentBuilderFactory; 
import javax.xml.parsers.DocumentBuilder; 
import org.xml.sax.SAXException; 
import org.xml.sax.SAXParseException; 

import java.net.URL; 
import java.io.InputStream; 

public class ReadAndPrintXMLFile{ 
    public static void main (String argv []){ 


    try { 
      DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance(); 
      DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder(); 

      URL url = new URL("http://xxxxxxxxxxxxxxxx"); 
      InputStream stream = url.openStream(); 
      Document doc = docBuilder.parse(stream); 

      // normalize text representation 
      doc.getDocumentElement().normalize(); 
      System.out.println ("Root element of the doc is " + 
       doc.getDocumentElement().getNodeName()); 
      NodeList listOfPersons = doc.getElementsByTagName("head"); 
      int totalPersons = listOfPersons.getLength(); 
      System.out.println("Total no of head : " + totalPersons); 
      for(int s=0; s<listOfPersons.getLength() ; s++){ 
       Node firstPersonNode = listOfPersons.item(s); 
       if(firstPersonNode.getNodeType() == Node.ELEMENT_NODE){ 
        Element firstPersonElement = (Element)firstPersonNode; 
        //------- 
        NodeList firstNameList = firstPersonElement.getElementsByTagName("heading"); 
        Element firstNameElement = (Element)firstNameList.item(0); 
        NodeList textFNList = firstNameElement.getChildNodes(); 
        System.out.println("Heading : " + 
          ((Node)textFNList.item(0)).getNodeValue().trim()); 

       }//end of if clause 
      }//end of for loop with s var 
     }catch (SAXParseException err) { 
     System.out.println ("** Parsing error" + ", line " 
      + err.getLineNumber() + ", uri " + err.getSystemId()); 
     System.out.println(" " + err.getMessage()); 
     }catch (SAXException e) { 
     Exception x = e.getException(); 
     ((x == null) ? e : x).printStackTrace(); 
     }catch (Throwable t) { 
     t.printStackTrace(); 
     } 
     //System.exit (0); 
    }//end of main 
} 

對於這個XML解析程序我不得不POJO類,。所以對於這個我創建這樣

public class POJOurl { 

    private String heading; 

    public String getHeading() { 
     return heading; 
    } 

    public void setHeading(String heading) { 
     this.heading = heading; 
    } 


} 

在這裏,我不知道該如何爲類在我的程序中使用get和set方法,使用這些公共字符串getHeading()和公共無效setHeading(字符串標題)我必須執行該程序..我必須得到我現在得到的輸出..只有東西是我不得不使用POJO課程

輸出::

Root element of the doc is root1 
Total no of head : 4 
Heading : Appliance Repairs 
Heading : Air conditioning and refrigeration services 
Heading : Accountants 
Heading : Accident Management 
+2

你的具體問題是什麼? –

+0

我必須創建POJO類((即)使用獲取和設置方法,我必須生成輸出),並從那個類我必須得到輸出, – user1443848

+0

這個XML你正在閱讀 - 是寫在XSD? – kjp

回答

0

我將創建一個類人用,你需要的屬性,例如名字。

+0

嗯..我創建了私人字符串標題; \t public String getHeading(){ \t \t return heading; \t} \t public void setHeading(String heading){ \t \t this.heading = heading; \t}但我不知道如何調用這些設置,並獲得方法,我必須打電話。由於我是POJO的新手,我在這裏感到困惑。 – user1443848

+0

你能告訴我們你的輸出應該是什麼樣子。 – Qowaz

+0

我正在得到我的輸出正是我所做的......但我沒有使用POJO類,我想要現在得到相同的輸出,但是我必須通過POJO類來獲得輸出。 – user1443848