使用dom4j工具:获取xml中的标签属性(三)

package dom4j_read;

import java.io.File;
import java.util.List;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
/**
 * 使用dom4j获取xml上的属性信息
 */
import org.dom4j.io.SAXReader;

public class Demo03 {
	public static void main(String[] args) throws Exception {
		// 1)创建xml解析器
		SAXReader reader = new SAXReader();
		Document doc = reader.read(new File("./src/contact.xml"));

		/**
		 * 1.1 读取属性 注意: 获取属性,必须先得到属性所在的标签
		 */

		Element conElem = doc.getRootElement().element("contact");
		// 1.1在标签上获取属性(根据属性名获得对应的属性值)
		String value = conElem.attributeValue("id");
		System.out.println(value);

		/**
		 * 1.2 获取id = 002的属性 获取名字相同的contact标签中的 第二个标签
		 */ // 因为elements返回的是list 放进去之后是Object
		Element conELem2 = (Element) doc.getRootElement().elements().get(1); // 下标从0开始的

		/**
		 * 1.3 根据属性名获取属性对象
		 */
		// 拿到标签对象
		conElem = doc.getRootElement().element("contact");
		// 拿到属性对象
		Attribute idAttr = conElem.attribute("id");
		// 通过属性对象拿到属性名
		String idName = idAttr.getName();
		// 通过属性对象拿到属性值
		String idValue = idAttr.getValue();
		System.out.println(idName + "=" + idValue);
		
		/**
		 *  1.4 获取标签的所有属性
		 *  指一个标签中的多个属性值:
		 *  	例如:
		 *  		
		 */
		conElem = doc.getRootElement().element("contact");
		
		List attrList = conElem.attributes();
		for(Attribute attribute : attrList) {
			System.out.println(attribute.getName()+" = "+attribute.getValue());
		}
	}
}

xml结构如下:



	
		张三
		
		134001114
		[email protected]
		
成都
李四 134001115 [email protected]
广州
王五 134001116 [email protected]
上海

你可能感兴趣的:(xml学习)