Java全面解析string類型的xml字符串
更新時間:2022年03月01日 11:42:46 作者:猿來就是你1
這篇文章主要介紹了Java全面解析string類型的xml字符串,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
解析string類型的xml字符串
我先拼接一個xml格式的字符串,模擬獲取了這樣的數(shù)據(jù),然后再解析
所需要的包自行導(dǎo)入
StringBuilder sb = new StringBuilder(); sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); sb.append("<root>"); sb.append(" <header>"); sb.append(" <mark>" + "this is a mark!"+ "</mark>"); sb.append(" </header>"); sb.append(" <body>"); sb.append(" <data>"); sb.append(" <first>"); sb.append(" <second>" + "來解析我??!"+ "</second>"); sb.append(" </first>"); sb.append(" </data>"); sb.append(" </body>"); sb.append("</root>"); //開始解析 String str= sb.toString(); Document doc = null; try { doc = DocumentHelper.parseText(str); } catch (DocumentException e) { e.printStackTrace(); } Element root = doc.getRootElement();// 指向根節(jié)點 <root> try { Element mark=root.element("header").element("mark"); Element second=root.element("body").element("data").element("first").element("second"); //獲取xml的節(jié)點內(nèi)容 System.out.println(mark.getTextTrim()); System.out.println(second.getTextTrim()); }catch(Exception e){ e.printStackTrace(); }
運行結(jié)果:
解析String類型t復(fù)雜xml,多級節(jié)點,最好的例子
需要用jar包 dom4j-1.6.1.jar
字符串xml如下
<root> <flw> <name>aa</name> <age>22</age> <instance_info> <num>1</num> <code>0</code> <instance> <ip>10.1.1.2</ip> <mask>9999</mask> </instance> <instance> <ip>10.1.1.5</ip> <mask>717</mask> </instance> </instance_info> <instance_info> <num>2</num> <code>33</code> <instance> <ip>10.1.1.2</ip> <mask>9999</mask> </instance> <instance> <ip>10.1.1.9</ip> <mask>878</mask> </instance> </instance_info> </flw> </root>
解析代碼
import java.io.ByteArrayInputStream; import java.io.UnsupportedEncodingException; import java.util.Iterator; import org.dom4j.DocumentException; import org.dom4j.io.SAXReader; public class XMLParser { public static void main(String[] args) { String xml = "<root><flw><name>aa</name><age>22</age><instance_info><num>1</num><code>0</code><instance><ip>10.1.1.2</ip><mask>9999</mask></instance><instance><ip>10.1.1.5</ip><mask>717</mask></instance></instance_info><instance_info><num>2</num><code>33</code><instance><ip>10.1.1.2</ip><mask>9999</mask></instance><instance><ip>10.1.1.9</ip><mask>878</mask></instance></instance_info></flw></root>"; long start = System.currentTimeMillis(); SAXReader reader = new SAXReader(); try { org.dom4j.Document doc = reader.read(new ByteArrayInputStream(xml .getBytes("UTF-8"))); org.dom4j.Element root = doc.getRootElement(); org.dom4j.Element element; org.dom4j.Element element2; org.dom4j.Element element3; for (Iterator i = root.elementIterator("flw"); i.hasNext();) { element = (org.dom4j.Element) i.next(); System.out .println("name:[" + element.elementText("name") + "]"); System.out.println("age:[" + element.elementText("age") + "]"); for (Iterator j = element.elementIterator("instance_info"); j .hasNext();) { element2 = (org.dom4j.Element) j.next(); System.out.println("\tnum:[" + element2.elementText("num") + "]"); System.out.println("\tcode:[" + element2.elementText("code") + "]"); for (Iterator k = element2.elementIterator("instance"); k .hasNext();) { element3 = (org.dom4j.Element) k.next(); System.out.println("\t\tip:[" + element3.elementText("ip") + "]"); System.out.println("\t\tmask:[" + element3.elementText("mask") + "]"); } } } } catch (DocumentException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } long end = System.currentTimeMillis(); System.out.println("耗時:" + (end - start) + "ms"); } }
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- Java中String類的常用方法總結(jié)
- Java?String類的理解及字符串常量池介紹
- Java中String類常用方法總結(jié)詳解
- Java基礎(chǔ)之String類使用與字符串比較
- Java中String類常用方法使用詳解
- 帶你一文深入認(rèn)識Java?String類
- Java String類常用方法梳理總結(jié)
- Java深入淺出講解String類常見方法
- Java詳細(xì)分析String類與StringBuffer和StringBuilder的使用方法
- Java?String類和StringBuffer類的區(qū)別介紹
- Java中String類常用類型實例總結(jié)
- 深入剖析Java中String類的concat方法
- 詳解Java中String類的各種用法
- 一文帶你初識java中的String類
- Java String類的性質(zhì)與比較
- 關(guān)于Java中String類字符串的解析
- Java String類字符串的理解與認(rèn)知
- Java-String類最全匯總(上篇)
相關(guān)文章
HashMap工作原理_動力節(jié)點Java學(xué)院整理
這篇文章主要介紹了HashMap工作原理_動力節(jié)點Java學(xué)院整理,需要的朋友可以參考下2017-04-04ThreadLocal簡介_動力節(jié)點Java學(xué)院整理
這篇文章主要為大家詳細(xì)介紹了ThreadLocal簡介的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-08-08Spring多數(shù)據(jù)源導(dǎo)致配置失效的解決
這篇文章主要介紹了Spring多數(shù)據(jù)源導(dǎo)致配置失效的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01