您当前的位置: 首页 > 

wespten

暂无认证

  • 2浏览

    0关注

    899博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

XML可扩展标记语言的解析

wespten 发布时间:2018-08-26 07:42:29 ,浏览量:2

xml提供一套跨平台, 跨网络,跨程序的数据描述语言,使用xml可以方便的实现数据交换,系统配置,内容管理等常见功能。

基本格式

studeng,name,sex,age为元素节点

id="001"为属性节点

张三 为文本节点



	张三
	男
	20

DOM方式解析XML

把整个XML文档加载到内存,转化为DOM树,应用程序可以随机访问DOM树的任何数据

优点灵活性强,速度快

缺点 消耗资源比较多

文档构建工厂

factory单例方式获取实例

newDocumentBuilder 文档构建模型

parse解析配置获取xml文档

getElementsByTagName通过标签名字获取dom节点

nodeList.item(0)获取第一个...元素

getFirstChild 获取第一个子节点 张三 getNodeValue获取值

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;


	public static void main(String[] args) {
		DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
		try {
			DocumentBuilder builder=factory.newDocumentBuilder();
			Document doc=builder.parse("src/student.xml");
			NodeList nodeList=doc.getElementsByTagName("student");
			Element e=(Element)nodeList.item(0);
			System.out.println("姓名:"+e.getElementsByTagName("name").item(0).getFirstChild().getNodeValue());
			System.out.println("性别:"+e.getElementsByTagName("sex").item(0).getFirstChild().getNodeValue());
			System.out.println("年龄:"+e.getElementsByTagName("age").item(0).getFirstChild().getNodeValue());
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

解析属性



	
		张三
		男
		20
	
	
		李四
		女
		21
	

getAttributes 获取node节点的所有属性

 

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

	public static void printNodeAttr(Node node){
		NamedNodeMap namedNodeMap=node.getAttributes();
		for(int i=0;i            
关注
打赏
1665965058
查看更多评论
0.0395s