XML解析

1、读取xml
//1)创建xml解析器对象
SAXReader reader = new SAXReader();  //快速导包 shift+ctrl+o
//2)读取xml文件
Document doc = reader.read(new File("./src/contact.xml"));
2、使用dom4j读取xml的标签
 *      getRootElement(): 获取根标签
 *      getName(): 获取标签名称
 *      element("名称"): 获取第一个指定名称的子标签
 *      elements("名称"): 获取指定名称的所有的子标签
 *      elements(): 获取所有子标签
//1)创建xml解析器对象
SAXReader reader = new SAXReader(); // ctrl+2 放手  +l
//2)读取xml文件
Document doc = reader.read(new File("./src/contact.xml"));
//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);
System.out.println("==============");
//1.4 获取所有子标签(根据指定的名称获取所有同名子标签)
List list = rootElem.elements("contact");
//遍历List
//几种方式?
//1)传统for循环
//2)for-each循环
for(Element e: list){
System.out.println(e);
}
//3)迭代器
System.out.println("================");
//1.4 获取所有子标签(不指定名称)
List eList = rootElem.elements();
for(Element e:eList){
System.out.println(e);
}
System.out.println("===========");
//1.5获取孙标签
Element nameElem  = rootElem.element("contact").element("name");
System.out.println(nameElem);

3、使用dom4j获取xml上的属性信息
       //1)创建xml解析器
		 SAXReader reader = new SAXReader();
		Document doc = reader.read(new File("./src/contact.xml"));
		
		/**
		 * 读取属性
		 * 注意:获取属性,必须先得到属性所在的标签
		 */
		Element conElem = doc.getRootElement().element("contact");
		//1.1 在标签上获取属性值(根据属性名称获取对应的属性值)
		String value = conElem.attributeValue("id");
		System.out.println(value);
		/**
		 * 练习: 拿到id=002属性
		 */
		Element conElem2 = (Element)doc.getRootElement().elements().get(1);
		System.out.println(conElem2.attributeValue("id"));
		
		//1.2 根据属性名称获取属性对象
		//拿到标签对象
		conElem = doc.getRootElement().element("contact");
		//拿到属性对象
		Attribute idAttr = conElem.attribute("id");
		//通过属性对象拿到 属性名
		String idName = idAttr.getName();
		//通过属性对象拿到 属性值
		String idValue = idAttr.getValue();
		System.out.println(idName+"="+idValue);
		
		System.out.println("===============");
		
		//1.3 获取标签的所有属性对象
		conElem = doc.getRootElement().element("contact");
		List<Attribute> attrList = conElem.attributes();
		for (Attribute attr : attrList) {
			System.out.println(attr.getName()+"="+attr.getValue());
		}
4、使用dom4j获取xml的文本信息

SAXReader reader = new SAXReader();
		Document doc = reader.read(new File("./src/contact.xml"));
		
		/**
		 * 注意:
		 *     在xml文件中,空格和换行会作为xml的内容被解析到。
		 *     xml中空格和换行和java代码中空格换行不一样。
		 *     java代码中的空格和换行是没意义的,为了代码的格式格式好看而已。
		 */
		Element con = doc.getRootElement().element("contact");
		System.out.println(con.getText());
		
		
		/**
		 * 读取文本:
		 * 	注意: 获取文本,要先获取文本所在的标签对象
		 */
		//1.1 拿到所在标签上的文本内容
		Element nameElem = doc.getRootElement().
						element("contact").element("name");
		String content = nameElem.getText();
		System.out.println(content);
		
		
		//1.2 通过父标签获取指定子标签的文本内容
		Element conElem = doc.getRootElement().element("contact");
	    content = conElem.elementText("gender");
	    System.out.println(content);




  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值