xml解析基础01
来源:互联网 发布:访客网络开启安全吗 编辑:程序博客网 时间:2024/05/16 15:43
package com.gas.test.hbxml;import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;import java.util.List;import org.dom4j.Attribute;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.DocumentHelper;import org.dom4j.Element;public class TestMain { /** * <?xml version="1.0" encoding="gb2312"?><service_req ver="1.0"> <header ver="1.0"> <id>1001</id> <pwd>123456</pwd> </header> <add_usr_req ver="1.0"> <add_usr_rept_url>http://123.123.12.12/servlet</add_usr_rept_url> <user> <msisdn>13812345678</msisdn> <cxyw_msisdn>13812345678</cxyw_msisdn> <name>行吗</name> <sex>1</sex> <birthday>2010-12-2</birthday> <zip_code>100000</zip_code> <address>北京市海淀区</address> <email>swei@sina.com</email> <vehicle_plate_number>京A12345</vehicle_plate_number> <idcard_type>1</idcard_type> <idcard_number>142312112212312313</idcard_number> </user> </add_usr_req></service_req> * * */ /** * FIXME * @param args * @throws DocumentException * @throws IOException */ public static void main(String[] args) throws IOException, DocumentException { TestMain job = new TestMain(); job.analyXml(); } /** * 解析XML文件方法 * @throws IOException * @throws DocumentException */ public void analyXml() throws IOException, DocumentException{ String xmlBody = forTest("D:\\hebeixml\\hbreg.xml"); Document document = DocumentHelper.parseText(xmlBody); Element root = document.getRootElement(); Element header = root.element("header"); String id = header.elementText("id"); String pwd = header.elementText("pwd"); Element add_usr_req = root.element("add_usr_req"); String add_usr_rept_url = add_usr_req.elementText("add_usr_rept_url"); List<?> userList = add_usr_req.elements("user"); for (int i = 0; i < userList.size(); i++) { Element userElement = (Element) userList.get(i); System.out.println(userElement.elementText("msisdn")); System.out.println(userElement.elementText("cxyw_msisdn")); System.out.println(userElement.elementText("name")); System.out.println(userElement.elementText("sex")); System.out.println(userElement.elementText("birthday")); System.out.println(userElement.elementText("zip_code")); System.out.println(userElement.elementText("address")); System.out.println(userElement.elementText("email")); } System.out.println(id); System.out.println(pwd); System.out.println(add_usr_rept_url); } /** * FIXME 读取文件 * @param file * @return * @throws IOException */ private String forTest(String file) throws IOException { BufferedReader in = new BufferedReader(new FileReader(file)); String s, s2 = new String(); while ((s = in.readLine()) != null) s2 += s + "\n"; in.close(); return s2; } private String forTest2(String file) throws IOException {//根据编码方式读取文件内容,可防止中文乱码问题 InputStreamReader read = new InputStreamReader(new FileInputStream(file), "gb2312"); BufferedReader in = new BufferedReader(read); String s, s2 = new String(); while ((s = in.readLine()) != null) s2 += s + "\n"; in.close(); return s2; } }