Stax的基本操作

来源:互联网 发布:搜索音乐的软件 编辑:程序博客网 时间:2024/06/14 04:24

一、Stax读取xml文件

1. xml的定义:
<?xml version="1.0" encoding="UTF-8"?><users><user id="1"><username>zhangsan</username><birthday>1990-12-12</birthday></user><user id="2"><username>lisi</username><birthday>1990-12-12</birthday></user><user id="3"><username>wangwu</username><birthday>1990-12-12</birthday></user></users>
2. 读取xml文件:
2.1 光标读取方式
package com.npf.spring;import java.io.InputStream;import javax.xml.stream.XMLInputFactory;import javax.xml.stream.XMLStreamConstants;import javax.xml.stream.XMLStreamReader;import org.junit.Test;public class UserTest {@Testpublic void test01() throws Exception{XMLInputFactory factory = XMLInputFactory.newFactory();InputStream stream = UserTest.class.getResourceAsStream("user.xml");XMLStreamReader streamReader = factory.createXMLStreamReader(stream);while(streamReader.hasNext()){int type = streamReader.next();if(type == XMLStreamConstants.START_ELEMENT){String name = streamReader.getName().toString();if("user".equals(name)){String attributeName = streamReader.getAttributeName(0).toString();String attributeValue = streamReader.getAttributeValue(0).toString();System.out.println("<"+streamReader.getName().toString()+" "+attributeName+"="+attributeValue+">");}else{System.out.println("<"+streamReader.getName().toString()+">");}}else if(type == XMLStreamConstants.CHARACTERS){System.out.println(streamReader.getText().trim());}else if(type == XMLStreamConstants.END_ELEMENT){System.out.println("</"+streamReader.getName().toString()+">");}}}}
2.2 迭代方式:
@Testpublic void test02() throws Exception{XMLInputFactory factory = XMLInputFactory.newFactory();InputStream stream = UserTest.class.getResourceAsStream("user.xml");XMLStreamReader streamReader = factory.createXMLStreamReader(stream);while(streamReader.hasNext()){int type = streamReader.next();if(type == XMLStreamConstants.START_ELEMENT){String name = streamReader.getName().toString();if("username".equals(name)){System.out.println("username: "+ streamReader.getElementText());}}}}

二、Stax写出xml文件

@Testpublic void test03() throws Exception{XMLStreamWriter xsw = XMLOutputFactory.newFactory().createXMLStreamWriter(System.out);xsw.writeStartDocument("UTF-8", "1.0");xsw.writeEndDocument();xsw.writeStartElement("person");xsw.writeStartElement("id");xsw.writeCharacters("1");xsw.writeEndElement();xsw.writeEndElement();xsw.flush();xsw.close();}


0 0
原创粉丝点击