zoukankan      html  css  js  c++  java
  • 使用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>
    


  • 相关阅读:
    PAT 1059. Prime Factors
    PAT 1058. A+B in Hogwarts
    关于树状数组
    PAT 1057. Stack
    PAT 1056. Mice and Rice
    PAT 1055. The World's Richest
    PAT 1054. The Dominant Color
    fft_filter  designed to filter gridded data in an a
    matlab 1 yr oscillations
    RMVANNUAL
  • 原文地址:https://www.cnblogs.com/mzywucai/p/11053422.html
Copyright © 2011-2022 走看看