java 解析xml文件

[b]dom 解析xml[/b]


package com.xmlparse;

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

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

public class DomXmlParse {

private String getFile() {
String path = System.getProperty("user.dir");
path = path + "\\src\\book.xml";
return path;
}

private void domXmlParses() throws Exception {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();

Document doc = builder.parse(getFile());

NodeList list = doc.getElementsByTagName("book");

//选择性的获取
for (int i = 0; i < list.getLength(); i++) {

Node node = list.item(i);

//获得属性值
Node attNode = node.getAttributes().getNamedItem("id");
System.out.println("attribut:"+attNode.getNodeName()+"\t"+attNode.getNodeValue());

//获得节点里面的子节点
Node n = doc.getElementsByTagName("name").item(i);
System.out.println("name:"+n.getNodeName()+"\t"+n.getFirstChild().getNodeValue());
}
}

public static void main(String[] args) throws Exception {
new DomXmlParse().domXmlParses();
}

}




[b]sax 解析xml[/b]


package com.xmlparse;

import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

public class SaxXmlParse extends DefaultHandler {

private String getFile() {
String path = System.getProperty("user.dir");
path = path + "\\src\\book.xml";
return path;
}

// 得到元素值

@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
String content = new String(ch,start,length);

System.out.println(content);
}

// 文档开始

@Override
public void startDocument() throws SAXException {
System.out.println("-------------文档开始-----------------");
}

// 元素开始

@Override
public void startElement(String uri, String localName, String name,
Attributes attributes) throws SAXException {

System.out.println("元素属性:"+attributes.getValue("id"));
System.out.print(name+"\t");

}

// 文档结束

@Override
public void endDocument() throws SAXException {
System.out.println("---------------文档结束------------");
}

// 元素结束

@Override
public void endElement(String uri, String localName, String name)
throws SAXException {
}

//main
public static void main(String[] args) throws Exception {

SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setValidating(false);
factory.setNamespaceAware(false);

SaxXmlParse saxparse = new SaxXmlParse();

SAXParser parser = factory.newSAXParser();
parser.parse(saxparse.getFile(), saxparse);

}

}



[b]xml 文件[/b]


<?xml version="1.0" encoding="gb2312"?>
<library>
<book id="1">
<name>ejb</name>
<price>10</price>
<author>张三</author>
</book>
<book id="2">
<name>jsp开发详解</name>
<price>78</price>
<author>小狗</author>
</book>
<book id="3">
<name>struts</name>
<price>100</price>
<author>小猪</author>
</book>
</library>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值