久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

在java中動態讀取xml元素和值

dynamically read xml element and value in java(在java中動態讀取xml元素和值)
本文介紹了在java中動態讀取xml元素和值的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我正在嘗試讀取 XML(無論如何,我不知道它的結構,bcz 我正在從服務器讀取文件.),我在 SO 上進行了很多搜索.但沒有發現任何有用的東西.

I'm trying to read XML(whatever, i don't know it's structure, bcz i'm reading flie from server.), and i searched a lot on SO. but not found anything helpful.

1> 我想檢索 XML 的節點名稱,從根目錄到文件末尾、子節點或子節點的子節點,直到沒有子節點或兄弟節點.

1> i want to retrieve XML's node name, starting from root to end of file, child or child of child untill there's no child or sibling remaining.

2> 在類似的問題中,我發現他們使用標記名來檢索該標記的值,所以我想在其中傳遞該節點名以獲取值...

2> in similar question, i found that they use tagname to retrieve value of that tag, so i want to pass that node name inside this to get value...

是否可以動態進行.或者必須遵循與之前問題相同的結構,例如靜態添加標記名以檢索值.

is it possible to do dynamically. or have to follow same structure as in previous questions like statically add tagname to retrieve value.

在java中完成后,我想創建可執行jar,并想在歡樂中使用它.

after doing this in java, i want to create executable jar, and want to use it in mirth.

編輯我想找到元素,它的值是這樣的,在第一個條件下,我正在循環我的數組列表,我命名為 masterheader,其中包含所有標簽名稱,在第二個循環中,我將從中查找節點名稱xml,并且在這兩個 for 循環中,我指定了一個條件,如果兩者都匹配,則它獲取節點名稱并將值存儲為分隔形式,因為我想將其轉換為 csv.

EDIT i want to find element and it's value such that, in first condition i'm looping my arraylist which i named masterheader which contain all tag name, and in second loop i'm going to find node name from xml, and and inside that two for loop i specified one condition, if both match, then it get node name and it store a value in , separated form, because i want to convert it in csv.

這里,masterheader 和 childheader 是 arraylist.masterheader 默認包含所有標頭.我們將在 childheader 中添加節點名,如果兩者都匹配,那么我們在結果字符串中添加值.例如masterheader = [員工姓名、員工姓名、父親姓名、手機、工資]而在childheader = [employeename, mobile,salary]//這是基于xml解析的.

here, masterheader and childheader is arraylist. masterheader contain all header by default. and we gonna add nodename in childheader, nd if both match then we add value in result string. for e.g. masterheader = [employeename, employeesurname, fathername, mobile, salary] and in childheader = [employeename, mobile, salary] //this is based on xml parsing.

for(i=0;i<masterheader.size();i++)
{
    for(j=0;j<childheader.size();j++)
    {
         if((masterheader[i]).equals(childheader[j]))
        {
           //get the value of that node, + ","        
        }
        else
         {
                count++
         }
    }
if(count==childheader.size()){
 //add into result string +null+","  
}
}

推薦答案

您可以為此目的使用 StAX 解析器.

You could use a StAX parser for this purpose.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<employees count="4">
    <employee>
        <id>2</id>
        <firstName>Jane</firstName>
        <lastName>Doe</lastName>
        <income>20000.0</income>
    </employee>
    <employee>
        <id>3</id>
        <firstName>Alfred</firstName>
        <lastName>Pennyworth</lastName>
        <income>30000.0</income>
    </employee>
    <employee>
        <id>4</id>
        <firstName>Tony</firstName>
        <lastName>Stark</lastName>
        <income>40000.0</income>
    </employee>
    <employee>
        <id>42</id>
        <firstName>Foo</firstName>
        <lastName>Bar</lastName>
        <income>15.0</income>
    </employee>
</employees>

Java 代碼

try (InputStream stream = new FileInputStream("employees.xml")) {
    XMLInputFactory inputFactory = XMLInputFactory.newFactory();
    inputFactory.setProperty(XMLInputFactory.IS_COALESCING, true);

    XMLStreamReader reader = inputFactory.createXMLStreamReader(stream);

    while (reader.hasNext()) {
        switch (reader.next()) {
            case XMLStreamConstants.START_ELEMENT:
                System.out.println("Start " + reader.getName());
                for (int i = 0, count = reader.getAttributeCount(); i < count; i++) {
                    System.out.println(reader.getAttributeName(i) + "=" + reader.getAttributeValue(i));
                }
                break;
            case XMLStreamConstants.END_ELEMENT:
                System.out.println("End " + reader.getName());
                break;
            case XMLStreamConstants.CHARACTERS:
            case XMLStreamConstants.SPACE:
                String text = reader.getText();
                if (!text.trim().isEmpty()) {
                    System.out.println("text: " + text);
                }
                break;
        }
    }
}

請注意,您可以輕松修改 START_ELEMENT 大小寫以將標記名稱與某個值進行比較.(如果您只想檢查這些元素,可能您可以忽略任何其他情況.)

Note that you could easily modify the START_ELEMENT case to compare the tag name to some value. (Probably you could ignore any other cases if you only want to check those elements.)

Start employees
count=4
Start employee
Start id
text: 2
End id
Start firstName
text: Jane
End firstName
Start lastName
text: Doe
End lastName
Start income
text: 20000.0
End income
End employee
Start employee
Start id
text: 3
End id
Start firstName
text: Alfred
End firstName
Start lastName
text: Pennyworth
End lastName
Start income
text: 30000.0
End income
End employee
Start employee
Start id
text: 4
End id
Start firstName
text: Tony
End firstName
Start lastName
text: Stark
End lastName
Start income
text: 40000.0
End income
End employee
Start employee
Start id
text: 42
End id
Start firstName
text: Foo
End firstName
Start lastName
text: Bar
End lastName
Start income
text: 15.0
End income
End employee
End employees

這篇關于在java中動態讀取xml元素和值的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Upload progress listener not fired (Google drive API)(上傳進度偵聽器未觸發(Google 驅動器 API))
Save file in specific folder with Google Drive SDK(使用 Google Drive SDK 將文件保存在特定文件夾中)
Google Drive Android API - Invalid DriveId and Null ResourceId(Google Drive Android API - 無效的 DriveId 和 Null ResourceId)
Google drive api services account view uploaded files to google drive using java(谷歌驅動api服務賬戶查看上傳文件到谷歌驅動使用java)
Google Drive service account returns 403 usageLimits(Google Drive 服務帳號返回 403 usageLimits)
com.google.api.client.json.jackson.JacksonFactory; missing in Google Drive example(com.google.api.client.json.jackson.JacksonFactory;Google Drive 示例中缺少)
主站蜘蛛池模板: 欧美成视频 | 人人人干| 精品欧美乱码久久久久久 | 精品国产1区2区3区 一区二区手机在线 | 免费视频二区 | 狠狠亚洲| 激情 一区 | 亚洲a视 | 免费av直接看 | 免费黄色特级片 | 91素人 | 日韩毛片 | 亚洲精品1区2区3区 91免费看片 | 99久久精品免费看国产四区 | 国产精品91视频 | 成人午夜视频在线观看 | 亚洲欧美在线免费观看 | 国产精品久久久久久久久久久免费看 | 中文字幕 欧美 日韩 | 国产高清一区二区三区 | 成年视频在线观看福利资源 | 成人免费影院 | 国产成人午夜精品影院游乐网 | 蜜桃视频成人 | 一区二区在线不卡 | 精品视频一区二区 | 成年人黄色免费视频 | 黄色一级免费 | 黑人巨大精品欧美一区二区免费 | 成人高清网站 | 国产亚洲精品久久19p | 欧美一区二区三区在线观看 | 色婷婷精品久久二区二区蜜臂av | 久久99蜜桃综合影院免费观看 | 精品一区二区三区在线观看 | 国产精品久久久99 | 免费在线播放黄色 | 精品一区二区三区在线观看 | 美女天天干天天操 | 日韩欧美国产成人一区二区 | 欧美性猛片aaaaaaa做受 |