• 使用dom4j工具:获得文本内容(四)


    package dom4j_read;
    
    import java.io.File;
    
    import org.dom4j.Document;
    import org.dom4j.Element;
    import org.dom4j.io.SAXReader;
    
    /**
     * 使用dom4j获取xml的文本信息
     * 
     * @author mzy
     *
     */
    public class Demo04 {
    	public static void main(String[] args) throws Exception {
    		SAXReader reader = new SAXReader();
    		Document doc = reader.read(new File("./src/contact.xml"));
    
    		/**
    		 * 读取文本: 注意:获取文本,首先要获取文本所在的标签对象
    		 */
    		// 1.1 拿到所在标签上的文本内容
    		// method_1:通过根标签获得子标签的子标签,再获得当前标签的文本内容
    		Element nameElem = doc.getRootElement().element("contact").element("name");
    		String content = nameElem.getText();
    		System.out.println(content);
    
    		// method_2:通过父标签获取指定子标签的文本内容。
    		Element conElem = doc.getRootElement().element("contact");
    		content = conElem.elementText("gender");
    		System.out.println(content);
    
    		/*
    		 * 通过以上的getText获取文本内容出现一个问题? 如果我们的当前标签是最内层标签,那么肯定有文本内容;
    		 * 但是如果我们getText的标签不是最内层标签呢?例如一个 外层标签,类似:contact,那么它的内容是什么呢?
    		 */
    		Element elem = doc.getRootElement().element("contact");
    		String text = elem.getText();
    		System.out.println("-----------------");
    		System.out.println(text);
    		System.out.println("-----------------");
    		/*
    		 * 输出结果如下:
    		 * -----------------
    		 * 
    		 * 
    		 * 
    		 * 
    		 * 
    		 * 
    		 * 
    		 * -----------------
    		 * 注意:	
    		 * 		contact内层装的是标签,但是并
    		 * 		不代表其中没有内容;
    		 * 		在xml文件中,空格和换行会作为
    		 * 		xml的内容被解析(读取)。
    		 * xml中的换行和java代码中的换行不同,
    		 * java代码中的换行是没得意义的,只是
    		 * 为了代码美观;xml中的换行和空格是有
    		 * 意义的。
    		 */
    		
    	}
    }
    

    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>
    


  • 相关阅读:
    2020.10.23 19级training 补题报告
    2020.10.17 天梯赛练习 补题报告
    2020.10.16 19级training 补题报告
    2020.10.9 19级training 补题报告
    2020.10.10 天梯赛练习 补题报告
    2020.10.3 天梯赛练习 补题报告
    2020.10.2 19级training 补题报告
    第十届山东省ACM省赛复现补题报告
    VVDI Key Tool Plus Adds VW Passat 2015 Key via OBD
    Xhorse VVDI Prog Software V5.0.3 Adds Many MCUs
  • 原文地址:https://www.cnblogs.com/mzywucai/p/11053422.html
Copyright © 2020-2023  润新知