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
  • 相关阅读:
    PAT 甲级 1027 Colors in Mars
    PAT 甲级 1026 Table Tennis(模拟)
    PAT 甲级 1025 PAT Ranking
    PAT 甲级 1024 Palindromic Number
    PAT 甲级 1023 Have Fun with Numbers
    PAT 甲级 1021 Deepest Root (并查集,树的遍历)
    Java实现 蓝桥杯VIP 算法训练 无权最长链
    Java实现 蓝桥杯VIP 算法训练 无权最长链
    Java实现 蓝桥杯 算法提高 抽卡游戏
    Java实现 蓝桥杯 算法提高 抽卡游戏
  • 原文地址:https://www.cnblogs.com/pecool/p/8042375.html
Copyright © 2011-2022 走看看