JAVA之SAX解析XML格式資料--Jdom.jar
阿新 • • 發佈:2018-12-20
package com.yldyyn.test; import org.jdom.Document; import org.jdom.Element; import org.jdom.JDOMException; import org.jdom.Namespace; import org.jdom.input.SAXBuilder; import org.xml.sax.InputSource; import java.io.IOException; import java.io.StringReader; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * @Author: yld * @Date: 2018-10-30 09:01 * @Version 1.0 */ public class DuXmlDoc { public static void main(String[] args) { DuXmlDoc duXmlDoc = new DuXmlDoc(); String xml = "<?xml version=\"1.0\" encoding=\"gb2312\"?>"+ "<Result xmlns=\"http://www.fiorano.com/fesb/activity/DBQueryOnInput2/Out\">"+ "<row resultcount=\"1\">"+ "<users_id>1001 </users_id>"+ "<users_name>wangwei </users_name>"+ "<users_group>80 </users_group>"+ "<users_address>1001號 </users_address>"+ "</row>"+ "<row resultcount=\"1\">"+ "<users_id>1002 </users_id>"+ "<users_name>wangwei </users_name>"+ "<users_group>80 </users_group>"+ "<users_address>1002號 </users_address>"+ "</row>"+ "</Result>"; duXmlDoc.xmlElements(xml); } public List xmlElements(String xmlDoc){ if (xmlDoc!=null && !xmlDoc.equals("")){ Pattern pattern = Pattern.compile("\r\n"); Matcher matcher = pattern.matcher(xmlDoc); xmlDoc = matcher.replaceAll(""); } //建立一個新的字串 StringReader read = new StringReader(xmlDoc); //建立一個新的輸入源SAX 解析器我們使用InputSource 物件來讀取XML輸入 InputSource source = new InputSource(read); //建立一個新的SAXBuilder SAXBuilder sb= new SAXBuilder(); try { //通過輸入源來構造一個Document Document doc = sb.build(source); //獲取跟元素 Element root = doc.getRootElement(); System.out.println(root.getName()); //得到根元素所有子元素的集合 List jiedian = root.getChildren(); //獲得XML中的名稱空間(XML未定義可以不寫) Namespace ns = root.getNamespace(); Element et = null; for (int i = 0; i < jiedian.size(); i++) { //迴圈 依次得到子元素 et = (Element) jiedian.get(i); System.out.println(et.getChild("users_id",ns).getText()); System.out.println(et.getChild("users_address",ns).getText()); } et = (Element)jiedian.get(0); List zjiedian = et.getChildren(); for (int i = 0; i < zjiedian.size(); i++) { Element xet = (Element) zjiedian.get(i); System.out.println(xet.getName()); } }catch (JDOMException exception){ exception.printStackTrace(); }catch (IOException e){ e.printStackTrace(); } return null; }
}
本文摘自某部落格大神的,如果涉嫌侵權,馬上刪除,並道歉