Java解析xml

tzpu2458 8年前發布 | 979 次閱讀 Java

實例一:

源碼:

import java.io.File;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;


public class DOMTest1
{
    public static void main(String[] args) throws Exception
    {
        //獲得DOM解析工廠
        DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
        //獲得解析器
        DocumentBuilder db=dbf.newDocumentBuilder();
        //解析xml文件
        Document document=db.parse(new File("person.xml"));

        NodeList list=document.getElementsByTagName("person");

        for(int i=0;i<list.getLength();i++){
            Element element=(Element) list.item(i);
            String str1=element.getElementsByTagName("name").item(0).getFirstChild().getNodeValue();
            System.out.println("name:"+str1);
            String str2=element.getElementsByTagName("age").item(0).getFirstChild().getNodeValue();
            System.out.println("name:"+str2);
            String str3=element.getElementsByTagName("address").item(0).getFirstChild().getNodeValue();
            System.out.println("name:"+str3);
            System.out.println("--------------------------");
        }       
    }
}
person.xml 文件內容:
<?xml version="1.0"?>
<people>
   <person>
          <name>weiwei1</name>
          <age>22</age>
          <address>jiangsu1</address>
   </person>
   <person>
          <name>weiwei2</name>
          <age>23</age>
          <address>jiangsu2</address>
   </person>
   <person>
          <name>weiwei3</name>
          <age>24</age>
          <address>jiangsu3</address>
   </person>
</people>


實例二:

源碼:

import java.io.File;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Attr;
import org.w3c.dom.Comment;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

/*
 * 使用遞歸解析給定的任意一個xml文檔,并且將其內容輸出到命令行
 */
public class DOMTest2
{
    public static void main(String[] args) throws Exception
    {
        DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
        DocumentBuilder db=dbf.newDocumentBuilder();
        Document document=db.parse(new File("student.xml"));
        //獲得根元素節點
        Element root=document.getDocumentElement();     
        parseElement(root);
    }

    private static void parseElement(Element element){
        //獲得元素的名字
        String tagName=element.getNodeName();
        //獲得這個結點的孩子
        NodeList list=element.getChildNodes();
        System.out.print("<"+tagName);
        //獲得這個結點的所有的屬性
        NamedNodeMap map=element.getAttributes();
        if(null!=map){
            for(int i=0;i<map.getLength();i++){
                Attr attr=(Attr) map.item(i);
                String name=attr.getName();
                String value=attr.getValue();
                System.out.print("  "+name+"=\""+value+"\"");
            }   
        }
        System.out.print(">");
        for(int i=0;i<list.getLength();i++){
            Node node=list.item(i);
            //獲得結點類型
            short nodeType=node.getNodeType();
            //是元素
            if(nodeType==Node.ELEMENT_NODE){
                //是元素,所以繼續遞歸
                parseElement((Element) node);           
            }// 是文本
            else if(nodeType==Node.TEXT_NODE){
                //遞歸出口
                System.out.print(node.getNodeValue());
            }//是注釋
            else if(nodeType==Node.COMMENT_NODE){
                System.out.print("<!--");
                Comment comment=(Comment)node;
                String str=comment.getData();
                System.out.print(str+"-->");
            }           
        }
        System.out.println("</"+tagName+">");
    }
}
student.xml文件內容:
<?xml version="1.0" encoding="gbk" standalone="yes"?>
<學生名冊>
<!--This is a student information-->
   <學生 學號="1">
          <姓名>李斯</姓名>
          <性別>男</性別>
          <年齡>22</年齡>
   </學生>
  <學生 學號="2">
          <姓名>王五</姓名>
          <性別>女</性別>
          <年齡>21</年齡>
   </學生>
   <學生 學號="3">
          <姓名>張三</姓名>
          <性別>男</性別>
          <年齡>20</年齡>
   </學生>
</學生名冊>




 本文由用戶 tzpu2458 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!