DOM解析XML

<?xml version="1.0"?>
<PEOPLE>
    <PERSON PERSONID="E01">
        <NAME>Tony Blair</NAME>
        <ADDRESS>10 Downing Street, London, UK</ADDRESS>
        <TEL>(061) 98765</TEL>
        <FAX>(061) 98765</FAX>
        <EMAIL>blair@everywhere.com</EMAIL>
    </PERSON>
    <PERSON PERSONID="E02">
        <NAME>Bill Clinton</NAME>
        <ADDRESS>White House, USA</ADDRESS>
        <TEL>(001) 6400 98765</TEL>
        <FAX>(001) 6400 98765</FAX>
        <EMAIL>bill@everywhere.com</EMAIL>
    </PERSON>
    <PERSON PERSONID="E03">
        <NAME>Tom Cruise</NAME>
        <ADDRESS>57 Jumbo Street, New York, USA</ADDRESS>
        <TEL>(001) 4500 67859</TEL>
        <FAX>(001) 4500 67859</FAX>
        <EMAIL>cruise@everywhere.com</EMAIL>
    </PERSON>
    <PERSON PERSONID="E04">
        <NAME>Linda Goodman</NAME>
        <ADDRESS>78 Crax Lane, London, UK</ADDRESS>
        <TEL>(061) 54 56789</TEL>
        <FAX>(061) 54 56789</FAX>
        <EMAIL>linda@everywhere.com</EMAIL>
    </PERSON>
</PEOPLE>

上面是对应的XML



import java.io.File;


import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;


public class DOM2XML {

    public static void main(String[] args) throws Exception {
        //step:1 获得dom的解析工厂(工作的作用适用于创建一个具体的解析器)
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        //step:2获得具体的dom解析器
        DocumentBuilder db = dbf.newDocumentBuilder();
        //step:3解析一个xml文档,获得Docment的对象(根节点)
        Document document = db.parse(new File("candidate.xml"));
        
        //获得节点名位PERSON的节点的集合
        NodeList list = document.getElementsByTagName("PERSON");
        
        for(int i = 0;i<list.getLength();i++){
            
            //遍历去的集合的元素,再取出每个元素里面的元素对应的值
            Element element = (Element)list.item(i);
            //通过标记得到对应的元素,在得到值
            String content = element.getElementsByTagName("NAME").item(0).getFirstChild().getNodeValue();
        
            System.out.println(content);
            
            content = element.getElementsByTagName("ADDRESS").item(0).getFirstChild().getNodeValue();
            
            System.out.println(content);
            
            content = element.getElementsByTagName("TEL").item(0).getFirstChild().getNodeValue();
            
            System.out.println(content);
            
            content = element.getElementsByTagName("FAX").item(0).getFirstChild().getNodeValue();
            
            System.out.println(content);
            
            content = element.getElementsByTagName("EMAIL").item(0).getFirstChild().getNodeValue();
            
            System.out.println(content);
            
            System.out.println("----------------------------------------------------");
            
        }
        
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值