使用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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值