sax解析xml字符串
2015-12-18 10:12
260 查看
package apphttptest;
import java.io.StringReader;
import java.util.List;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.Namespace;
import org.jdom.input.SAXBuilder;
import org.w3c.dom.NodeList;
import org.xml.sax.Attributes;
import org.xml.sax.HandlerBase;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class SAXReadXmlStrTest extends DefaultHandler {
private static String xmlStr = "<CARD><Message><DQRes><version>1.0.1</version><instId>0001</instId><certId>0001</certId><date>20151126 16:33:45</date><serialNo>20151126 043340334022552</serialNo></DQRes></Message></CARD>";
public static void main(String[] args) throws Exception {
saxnewtest();
}
/**
* 使用sax解析xml字符串
*
* @author 龙
*
*/
public static void saxtest() throws Exception {
StringReader read = new StringReader(xmlStr);
InputSource source = new InputSource(read);
SAXBuilder sb = new SAXBuilder();
Document doc = sb.build(source);
Element root = doc.getRootElement();
// System.out.println(root.getName());// 输出根元素的名称(测试)
List jiedian = root.getChildren();
for (int i = 0; i < jiedian.size(); i++) {
Element element = (Element) jiedian.get(i);
String firstname = element.getName();
System.out.println("name:" + element.getName() + ";value:" + element.getText());
List mwglist = element.getChildren();
System.out.println("mwglist:" + mwglist.size());
for (int j = 0; j < mwglist.size(); j++) {
Element element2 = (Element) mwglist.get(j);
System.out.println("name:" + element2.getName() + ";value:" + element2.getText());
List deslist = element2.getChildren();
System.out.println("deslist:" + deslist.size());
for (int k = 0; k < deslist.size(); k++) {
Element element3 = (Element) deslist.get(k);
System.out.println("name:" + element3.getName() + ";value:"
+ element3.getText());
}
}
}
}
private static void saxnewtest() throws Exception {
StringReader read = new StringReader(xmlStr);
InputSource source = new InputSource(read);
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
SAXReadXmlStrTest saxReadXmlStrTest = new SAXReadXmlStrTest();
parser.parse(source, saxReadXmlStrTest);
}
@Override
public void startDocument() throws SAXException {
System.out.println("开始解析xml字符串");
}
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes)
throws SAXException {
System.out.println("开始解析xml的element>>>uri:" + uri);
System.out.println("开始解析xml的element>>>localName:" + localName);
System.out.println("开始解析xml的element>>>qName:" + qName);
System.out.println("开始解析xml的element>>>attributes----id:" + attributes.getValue(0));
}
@Override
public void endElement(String uri, String localName, String qName) throws SAXException {
System.out.println("解析xml节点结束>>>uri:" + uri);
System.out.println("解析xml节点结束>>>localName:" + localName);
System.out.println("解析xml节点结束>>>qName:" + qName);
System.out.println("解析xml节点结束>>>uri:" + uri);
}
@Override
public void characters(char[] ch, int start, int length) throws SAXException {
String content = new String(ch, start, length);
System.out.println("开始获取节点element的值content:" + content);
}
}
import java.io.StringReader;
import java.util.List;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.Namespace;
import org.jdom.input.SAXBuilder;
import org.w3c.dom.NodeList;
import org.xml.sax.Attributes;
import org.xml.sax.HandlerBase;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class SAXReadXmlStrTest extends DefaultHandler {
private static String xmlStr = "<CARD><Message><DQRes><version>1.0.1</version><instId>0001</instId><certId>0001</certId><date>20151126 16:33:45</date><serialNo>20151126 043340334022552</serialNo></DQRes></Message></CARD>";
public static void main(String[] args) throws Exception {
saxnewtest();
}
/**
* 使用sax解析xml字符串
*
* @author 龙
*
*/
public static void saxtest() throws Exception {
StringReader read = new StringReader(xmlStr);
InputSource source = new InputSource(read);
SAXBuilder sb = new SAXBuilder();
Document doc = sb.build(source);
Element root = doc.getRootElement();
// System.out.println(root.getName());// 输出根元素的名称(测试)
List jiedian = root.getChildren();
for (int i = 0; i < jiedian.size(); i++) {
Element element = (Element) jiedian.get(i);
String firstname = element.getName();
System.out.println("name:" + element.getName() + ";value:" + element.getText());
List mwglist = element.getChildren();
System.out.println("mwglist:" + mwglist.size());
for (int j = 0; j < mwglist.size(); j++) {
Element element2 = (Element) mwglist.get(j);
System.out.println("name:" + element2.getName() + ";value:" + element2.getText());
List deslist = element2.getChildren();
System.out.println("deslist:" + deslist.size());
for (int k = 0; k < deslist.size(); k++) {
Element element3 = (Element) deslist.get(k);
System.out.println("name:" + element3.getName() + ";value:"
+ element3.getText());
}
}
}
}
private static void saxnewtest() throws Exception {
StringReader read = new StringReader(xmlStr);
InputSource source = new InputSource(read);
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
SAXReadXmlStrTest saxReadXmlStrTest = new SAXReadXmlStrTest();
parser.parse(source, saxReadXmlStrTest);
}
@Override
public void startDocument() throws SAXException {
System.out.println("开始解析xml字符串");
}
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes)
throws SAXException {
System.out.println("开始解析xml的element>>>uri:" + uri);
System.out.println("开始解析xml的element>>>localName:" + localName);
System.out.println("开始解析xml的element>>>qName:" + qName);
System.out.println("开始解析xml的element>>>attributes----id:" + attributes.getValue(0));
}
@Override
public void endElement(String uri, String localName, String qName) throws SAXException {
System.out.println("解析xml节点结束>>>uri:" + uri);
System.out.println("解析xml节点结束>>>localName:" + localName);
System.out.println("解析xml节点结束>>>qName:" + qName);
System.out.println("解析xml节点结束>>>uri:" + uri);
}
@Override
public void characters(char[] ch, int start, int length) throws SAXException {
String content = new String(ch, start, length);
System.out.println("开始获取节点element的值content:" + content);
}
}
相关文章推荐
- Oracle Containers for J2EE远程安全漏洞(CVE-2014-0413)
- 分享J2EE的13种核心技术
- J2EE项目代码编写规范分享
- JDK、J2EE、J2SE、J2ME四个易混淆概念区分
- JWeb框架
- EJB技术,够重!够杂!
- linux下搭建J2EE开发环境以及IDE的安装
- hibernate对象的状态的理解(第五天)
- 一个基于J2EE的web应用程序运行起来需要什么?
- tomcat的最大线程数、最大排队数多少合适
- Nginx + Tomcat Windows下的负载均衡配置
- j2ee异常拦截
- Hibernate数据查询
- 什么是j2ee
- zz j2ee系统剖析
- J2EE标准
- J2ME,J2EE,J2SE简介、对比
- 漫谈:选择Java Web开发真不容易 技术族谱
- 项目中采用J2EE体系架构分析