Java 操作XML文件
2013-08-06 20:45
316 查看
有一个XML文件,将它的信息解析出来并保存在List数组中,看看如何来完成。解析XML文件的方式有很多,如DOM方式,这个把XML文件解析成一棵树,需要将XML文件全部加载后才能解析,有另一种方式来解析XML文件,就是使用SAX来解析XML文件,SAX是基于事件来处理XML文件中,当遇到XML中一个标识符时,就触发某个事件来处理它。
使用SAX时,先让它继承DefaultHandler类,然后实际它的四个方法。
public void startDocument() throws SAXException {
// 当读到第一个开始标签的时候,开始触发
list = new ArrayList<HashMap<String, String>>();
}
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
// 当遇到文档的开头的时候,调用这个方法
if (qName.equals(nodeName)) {
map = new HashMap<String, String>();
}
if (attributes != null && map != null) {
for (int i = 0; i < attributes.getLength(); i++)
map.put(attributes.getQName(i), attributes.getValue(i));
}
// System.out.println(qName+"1111");
currentTag = qName;
}
public void characters(char[] ch, int start, int length)
throws SAXException {
// 处理从xml文件所读取到的内容
if (currentTag != null && map != null) {
currentValue = new String(ch, start, length);
if (currentValue != null && !currentValue.trim().equals("")
&& !currentValue.trim().equals("\n")) {
map.put(currentTag, currentValue);
}
}
//System.out.println(currentTag+"\t"+currentValue+"222");
currentTag = null;
currentValue = null;
}
public void endElement(String uri, String localName, String qName)
throws SAXException {
// 遇到结束标记的时候,调用此方法
if (qName.equals(nodeName)) {
list.add(map);
map = null;
}
// System.out.println(qName+"333");
}
使用SAX时,先让它继承DefaultHandler类,然后实际它的四个方法。
public void startDocument() throws SAXException {
// 当读到第一个开始标签的时候,开始触发
list = new ArrayList<HashMap<String, String>>();
}
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
// 当遇到文档的开头的时候,调用这个方法
if (qName.equals(nodeName)) {
map = new HashMap<String, String>();
}
if (attributes != null && map != null) {
for (int i = 0; i < attributes.getLength(); i++)
map.put(attributes.getQName(i), attributes.getValue(i));
}
// System.out.println(qName+"1111");
currentTag = qName;
}
public void characters(char[] ch, int start, int length)
throws SAXException {
// 处理从xml文件所读取到的内容
if (currentTag != null && map != null) {
currentValue = new String(ch, start, length);
if (currentValue != null && !currentValue.trim().equals("")
&& !currentValue.trim().equals("\n")) {
map.put(currentTag, currentValue);
}
}
//System.out.println(currentTag+"\t"+currentValue+"222");
currentTag = null;
currentValue = null;
}
public void endElement(String uri, String localName, String qName)
throws SAXException {
// 遇到结束标记的时候,调用此方法
if (qName.equals(nodeName)) {
list.add(map);
map = null;
}
// System.out.println(qName+"333");
}
相关文章推荐
- java中以JDOM4的方式来对xml文件对象进行解析操作
- Java操作读取写入文本TXT及XML文件内容
- Java基础学习笔记之XML文件操作
- 基于Java的XML文件模拟数据库进行增删改查操作
- JAVA解析XML配置文件的读取操作
- Java_xml_dom4j对xml文件增删读写操作
- Java操作XML文件(1)-写入XML文件
- 摘抄的 JAVA JDOM 操作XML文件
- Java与XML(一):采用DOM操作XML文件
- [java]将操作xml对象的结果写到文件里
- 对xsd文件的操作 生成java实体并解析生成的xml
- Java操作XML文档(2)-写入文件
- Java与XML(二):使用Dom4j 操作 XML 文件
- 对xsd文件的操作 生成java实体并解析生成的xml
- 07_数据库创建,添加c3p0操作所需的jar包,编写c3p0-config.xml文件,编写User.java,编写jdbcUtils.java实现操作数据库的模板工具类,UserDao编写,Dao
- java操作xml w3c及xml存储图片文件
- 07_数据库创建,添加c3p0操作所需的jar包,编写c3p0-config.xml文件,编写User.java,编写jdbcUtils.java实现操作数据库的模板工具类,UserDao编写,Dao
- java对xml文件操作的工具类
- java程序操作xml文件
- Java采用DOM操作XML文件简单介绍