2011-03-30 95 views
4

任何人都可以在java中共享dom解析器的好文檔。在Java中的XML DOM解析器?

感謝

+2

你接受一個答案,我會盡快給予好評回來。謝謝。 – 2011-04-10 18:30:46

+0

你可以自己寫一個。看到這個http://stackoverflow.com/a/8346867/851432 – Jomoos 2011-12-01 19:13:20

+0

你可能想考慮OXM而不是傳統的DOM解析呢? Java允許您使用Jackson等技術在Java對象和Java對象的XML定義之間進行轉換 – Richard 2015-02-16 17:14:41

回答

1

檢查這個Simple Parser XML with DOM Examplethis Sax Example

public class ReadXMLFile { 

    public static void main(String argv[]) { 

    try { 

    File fXmlFile = new File("/Users/mkyong/staff.xml"); 
    DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); 
    DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); 
    Document doc = dBuilder.parse(fXmlFile); 

    //optional, but recommended 
    //read this - http://stackoverflow.com/questions/13786607/normalization-in-dom-parsing-with-java-how-does-it-work 
    doc.getDocumentElement().normalize(); 

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

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

    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; 

      System.out.println("Staff id : " + eElement.getAttribute("id")); 
      System.out.println("First Name : " + eElement.getElementsByTagName("firstname").item(0).getTextContent()); 
      System.out.println("Last Name : " + eElement.getElementsByTagName("lastname").item(0).getTextContent()); 
      System.out.println("Nick Name : " + eElement.getElementsByTagName("nickname").item(0).getTextContent()); 
      System.out.println("Salary : " + eElement.getElementsByTagName("salary").item(0).getTextContent()); 

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

}