zoukankan      html  css  js  c++  java
  • 使用dom4j工具:读取xml标签(二)

    package dom4j_read;
    
    import java.io.File;
    import java.util.List;
    import org.dom4j.Document;
    import org.dom4j.Element;
    import org.dom4j.io.SAXReader;
    
    /**
     * 读取xml的标签
     *		getRootElement():获取根标签
     *		getName():获取标签名称
     *		element("XX"):获取第一个XX名的子标签
     *		elements("XX"):获取所有XX名的子标签
     *		elements():获取所有标签
     *		element().element(). ~~~:可以多次套用
     *		 
     * @author Administrator
     *
     */
    public class Demo02 {
    	public static void main(String[] args) throws Exception {
    		// 创建xml解析器对象
    		SAXReader reader = new SAXReader();
    
    		Document doc = reader.read(new File("./src/contact.xml"));
    
    		// System.out.println(doc);
    		
    		/*
    		 * 读取标签
    		 */
    		// 1.1 读取根标签
    		Element rootElem = doc.getRootElement();
    		System.out.println(rootElem);
    		
    		// 1.2 获取标签名称
    		System.out.println(rootElem.getName());
    		
    		// 1.3 获取第一个子标签
    		Element conElem = rootElem.element("contact");
    		System.out.println(conElem);
    		
    		// 1.4获取所有同名的子标签(指定名字)
    		List<Element> list = rootElem.elements("contact");
    		// 遍历List
    		// 几种方式?
    		// 1)传统for循环
    		/*
    		for(int i=0; i<list.size(); i++) {
    			System.out.println(list.get(i));
    		}
    		*/
    		
    		// 2)foreach循环
    		for(Element e : list) {
    			System.out.println(e);
    		}
    		System.out.println("--------------------------");
    		// 3)迭代器
    		/*
    		Iterator<Element> it = list.iterator();
    		while(it.hasNext()) {
    			Element e =  it.next();
    			System.out.println(e);
    		}
    		*/
    		
    		// 1.5 获取所有子标签(不指定名称)
    		List<Element> eList = rootElem.elements();
    		for(Element e : eList) {
    			System.out.println(e);
    		}
    		System.out.println("--------------------------");
    		// 1.6 拿到第一个contact标签的name标签
    		Element nameElem = rootElem.element("contact").element("name");
    		
    		System.out.println(nameElem);
    		
    	}
    }
    

    xml中,结构如下:

    <?xml version="1.0" encoding="gbk"?>
    <contact-list>
    	<contact id="001" name="eric">
    		<name>张三</name>
    		<gender>男</gender>
    		<phone>134001114</phone>
    		<email>zhangsan@qq.com</email>
    		<address>成都</address>
    	</contact>
    	<contact id="002">
    		<name>李四</name>
    		<gender>男</gender>
    		<phone>134001115</phone>
    		<email>lisi@qq.com</email>
    		<address>广州</address>
    	</contact>
    	<contact id="003">
    		<name>王五</name>
    		<gender>男</gender>
    		<phone>134001116</phone>
    		<email>wangwu@qq.com</email>
    		<address>上海</address>
    	</contact>
    </contact-list>
    


  • 相关阅读:
    LeetCode105. 从前序与中序遍历序列构造二叉树
    Flask 基础
    24个常用 Python 实现
    大佬的编码建议,让你的代码更pythonic
    rest-framework框架之序列化
    路飞学城项目之加入结算中心接口
    java异常与spring事务关系的知识点查漏补缺
    iserver-数据库型数据源导入后原dataset名称和数据库表名不一致的问题
    解决数据读取的负载均衡的问题
    Nginx反向代理、CORS、JSONP等跨域请求解决方法总结
  • 原文地址:https://www.cnblogs.com/mzywucai/p/11053424.html
Copyright © 2011-2022 走看看