溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Java中string類型的xml字符串實(shí)例分析

發(fā)布時間:2022-03-01 14:18:07 來源:億速云 閱讀:238 作者:iii 欄目:開發(fā)技術(shù)

這篇“Java中string類型的xml字符串實(shí)例分析”文章的知識點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Java中string類型的xml字符串實(shí)例分析”文章吧。

解析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é)點(diǎn)  <root>
        try {
            Element mark=root.element("header").element("mark");
            Element second=root.element("body").element("data").element("first").element("second");
            //獲取xml的節(jié)點(diǎn)內(nèi)容
            System.out.println(mark.getTextTrim());
            System.out.println(second.getTextTrim());
        }catch(Exception e){
            e.printStackTrace();
        }

運(yùn)行結(jié)果:

Java中string類型的xml字符串實(shí)例分析

解析String類型t復(fù)雜xml,多級節(jié)點(diǎn),最好的例子

需要用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");
        }
}

以上就是關(guān)于“Java中string類型的xml字符串實(shí)例分析”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI