zoukankan      html  css  js  c++  java
  • Dom解析xml

    如何使用java语言读取xml,并输出xml中元素的信息

     E:dom.xml文件

    <?xml version="1.0" encoding="UTF-8"?>
    <xml>
    <person>
    <name>张三</name>
    <age>23</age>
    <add>北京</add>
    </person>
    
    <person>
    <name>李四</name>
    <age>24</age>
    <add>西安</add>
    </person>
    
    <person>
    <name>王五</name>
    <age>25</age>
    <add>上海</add>
    </person>
    </xml>

    package com.cissst.dom1;
    
    import java.io.File;
    import java.io.IOException;
    
    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;
    import org.xml.sax.SAXException;
    
    public class DomTest {
        public static void main(String[] args){
            //得到DocumentBuilderFactory的一个工厂对象
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            
            DocumentBuilder docuBuilder = null;
            Document document = null;
            try {
                //用工厂对象得到一个DocumentBuilder对象
                docuBuilder = factory.newDocumentBuilder();
                //设置要访问的xml文件路径
                document = docuBuilder.parse("E:"+File.separator+"dom.xml");
                //获取名称为name元素的节点内容
                NodeList nl = document.getElementsByTagName("person");
                for(int i=0;i<nl.getLength();i++){
                    //循环为每一个名字为person的节点转换成Element并输出元素的子节点中的内容
                    Element element = (Element)nl.item(i);
                    System.out.print(element.getElementsByTagName("name").item(0).getFirstChild().getNodeValue());
                    System.out.print(element.getElementsByTagName("age").item(0).getFirstChild().getNodeValue());
                    System.out.println(element.getElementsByTagName("add").item(0).getFirstChild().getNodeValue());
                }
            } catch (ParserConfigurationException e) {
                e.printStackTrace();
            } catch (SAXException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            
            
        }
    }
    Best Regards
  • 相关阅读:
    linux学习 建立静态库,动态库,写简单的makefile
    C++中顶层const和底层const
    BDB (Berkeley DB)数据库简单介绍(转载)
    Java中Map的使用
    Spring MVC 3 深入总结
    nvl,空时的推断和取值
    java堆栈 (转)
    mybatis--面向接口编程
    HDU 4888
    socket编程——一个简单的样例
  • 原文地址:https://www.cnblogs.com/pecool/p/8042375.html
Copyright © 2011-2022 走看看