xml概述

1、xml概念(点击查看百度词条)


2、xml的语法

    * XML必须有关闭标签

    * 区分大小写

    * 属性需要有引号

    * 标签必须正确嵌套

3、xml元素的命名规范

4、xml的解析

    * XML的解析: 从XML文档中获得想要的数据。

    *XML的解析方式:

            * DOM解析:DOM:DocumentObject Model.

            * SAX解析:SimpleApi for XML.

    *DOM和SAX的区别:

下面是dom4j和dom4j+xpath两种解析方式

<?xml version="1.0" encoding="UTF-8"?>
<!-- XML的注释 -->
<!DOCTYPE persons SYSTEM "domo1.dtd" >
<persons>
	<person id="aaa">
		<name>dd华</name>
		<age>38</age>
		<sex>男</sex>
	</person>
	
	<person id="bbb">
		<name>李ff</name>
		<age>28</age>
		<sex>男</sex>
	</person>
</persons>

DOM4J的入门案例步骤:

* 【步骤一】导入jar.dom4j-1.6.1.jar

* 【步骤二】创建解析器

* 【步骤三】解析文档获得代表文档的Document对象.

* 【步骤四】获得跟节点.

* 【步骤五】从跟节点下查找其他的节点.

package com.xml解析;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.junit.Test;

public class 旧方式 {
	@Test
	// 传统方式
	public void old11() throws Exception {
		// 创建解析器
		SAXReader reader = new SAXReader();
		// 解析xml的文档
		Document document = reader.read("xml/persons.xml");
		// 获得根节点
		Element root = document.getRootElement();
		// System.out.println(root.getName());
		// 查找根节点下的子节点 .element:或者子节点 elements():将所有的子节点返回一个数组;
		Element pElement = root.element("person"); // 查找的是第一个person元素
		//root.elements("person").get(1); // 查找的是返回数组的第二个person元素
		Element nElement = pElement.element("name");
		Element aElement = pElement.element("age");
		Element sElement = pElement.element("sex");
		System.out.println(nElement.getText());
		System.out.println(aElement.getText());
		System.out.println(sElement.getText());
		
	}

}

DOM4J+Xpath的入门案例步骤:

* 【步骤一】导入jar.dom4j-1.6.1.jar ,jaxen-1.1-beta-6.jar

* 【步骤二】创建解析器

* 【步骤三】解析文档获得Node节点

* 【步骤四】将node(表示多态节点)转换为元素节点

* 【步骤五】从元素节点下查找其他的节点.

package com.xml解析;

import java.util.List;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
import org.junit.Test;

public class Xpath方式 {
	@Test
	// Xpath方式
	public void xpath() throws Exception {
		// 创建解析器
		SAXReader reader = new SAXReader();
		// 解析xml返回document对象
		Document document = reader.read("xml/persons.xml");
		// Node node = document.selectSingleNode("//person");
		Object obj = document.selectNodes("//person").get(1);
		Element ePlement = (Element) obj;
		/*
		 * //将person下节点返回一个集合里 List<Node> list = document.selectNodes("//person");
		 * //拿到第二个person节点 Node node = list.get(1);
		 */
		// 将node(表示多态节点)转换为元素节点
		//Element ePlement = (Element) node;
		Element nElement = ePlement.element("name");
		Element aElement = ePlement.element("age");
		Element sElement = ePlement.element("sex");
		System.out.println(nElement.getText());
		System.out.println(aElement.getText());
		System.out.println(sElement.getText());

		/*
		Element pElement = (Element) node; 
		Element nElement = pElement.element("name"); 
		Element aElement = pElement.element("age"); 
		Element sElement = pElement.element("sex"); 
		System.out.println(nElement.getText());
		System.out.println(aElement.getText());
		System.out.println(sElement.getText());
		 */
		/*
		 * // 使用selectNodes方法返回一个集合 
		 List<Node> list = document.selectNodes("//name");
		 for (Node node : list) { 
		 Element element = (Element) node; // 将跟节点转换为元素节点
		 System.out.println(element.getText());
		 }
		 */

		// List<Node> list = document.selectNodes("//person['@id']");
		// for (Node node : list) {
		// Element element = (Element) node;
		// System.out.println(element.attributeValue("id"));
		// }

	}

}














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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值