Rumah pembangunan bahagian belakang Tutorial XML/RSS XML字符转Map工具类的示例代码分享

XML字符转Map工具类的示例代码分享

Apr 01, 2017 pm 01:13 PM

XML字符转Map工具类的示例代码分享

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;

public class XmlUtils {

    public static Map<String, Object> Str2Map(String str){
        try {
//            long beginTime = System.currentTimeMillis();
            Document doc = DocumentHelper.parseText(str);
//            System.out.println(doc.asXML());
            Map<String, Object> map = XmlUtils.Dom2Map(doc);
//            System.out.println(map.toString());
//            System.out.println("Use time:"+(System.currentTimeMillis()-beginTime));
            return map;
        } catch (DocumentException e) {
            e.printStackTrace();
        }
        return null;
    }
    
    public static Map<String, Object> Dom2Map(Document doc){ 
        Map<String, Object> map = new HashMap<String, Object>(); 
        if(doc == null) 
            return map; 
        Element root = doc.getRootElement(); 
        for (Iterator iterator = root.elementIterator(); iterator.hasNext();) { 
            Element e = (Element) iterator.next(); 
            List list = e.elements(); 
            if(list.size() > 0){ 
                map.put(e.getName(), Dom2Map(e)); 
            }else 
                map.put(e.getName(), e.getText()); 
        } 
        return map; 
    } 
    
    @SuppressWarnings("unchecked")
    public static Map Dom2Map(Element e){ 
        Map map = new HashMap(); 
        List list = e.elements(); 
        if(list.size() > 0){ 
            for (int i = 0;i < list.size(); i++) { 
                Element iter = (Element) list.get(i); 
                List mapList = new ArrayList(); 

                if(iter.elements().size() > 0){ 
                    Map m = Dom2Map(iter); 
                    if(map.get(iter.getName()) != null){ 
                        Object obj = map.get(iter.getName()); 
                        if(!obj.getClass().getName().equals("java.util.ArrayList")){ 
                            mapList = new ArrayList(); 
                            mapList.add(obj); 
                            mapList.add(m); 
                        } 
                        if(obj.getClass().getName().equals("java.util.ArrayList")){ 
                            mapList = (List) obj; 
                            mapList.add(m); 
                        } 
                        map.put(iter.getName(), mapList); 
                    }else 
                        map.put(iter.getName(), m); 
                } 
                else{ 
                    if(map.get(iter.getName()) != null){ 
                        Object obj = map.get(iter.getName()); 
                        if(!obj.getClass().getName().equals("java.util.ArrayList")){ 
                            mapList = new ArrayList(); 
                            mapList.add(obj); 
                            mapList.add(iter.getText()); 
                        } 
                        if(obj.getClass().getName().equals("java.util.ArrayList")){ 
                            mapList = (List) obj; 
                            mapList.add(iter.getText()); 
                        } 
                        map.put(iter.getName(), mapList); 
                    }else 
                        map.put(iter.getName(), iter.getText()); 
                } 
            } 
        }else 
            map.put(e.getName(), e.getText()); 
        return map; 
    }
Salin selepas log masuk

Atas ialah kandungan terperinci XML字符转Map工具类的示例代码分享. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimanakah springboot membaca senarai, tatasusunan, koleksi peta dan objek dalam fail yml? Bagaimanakah springboot membaca senarai, tatasusunan, koleksi peta dan objek dalam fail yml? May 11, 2023 am 10:46 AM

application.yml mentakrifkan koleksi senarai Cara pertama ialah menggunakan anotasi @ConfigurationProperties untuk mendapatkan semua nilai jenis koleksi senarai:kod:status:-200-300-400-500. Tulis kelas entiti yang sepadan fail konfigurasi. Apa yang perlu diperhatikan di sini ialah mentakrifkan Koleksi senarai, mula-mula tentukan kelas konfigurasi Bean, dan kemudian gunakan anotasi @ConfigurationProperties untuk mendapatkan nilai koleksi senarai Di sini kami akan menerangkan peranan anotasi yang berkaitan. @Component menyerahkan kelas entiti kepada pengurusan Spring @ConfigurationPropertie

Bagaimana untuk menetapkan peta masa tamat tempoh di Jawa Bagaimana untuk menetapkan peta masa tamat tempoh di Jawa May 04, 2023 am 10:13 AM

1. Latar belakang teknikal Dalam pembangunan projek sebenar, kami sering menggunakan perisian tengah caching (seperti redis, MemCache, dll.) untuk membantu kami meningkatkan ketersediaan dan keteguhan sistem. Tetapi dalam banyak kes, jika projek itu agak mudah, tidak perlu memperkenalkan perisian tengah secara khusus seperti Redis untuk meningkatkan kerumitan sistem untuk menggunakan caching. Jadi adakah Java sendiri mempunyai komponen caching ringan yang berguna? Jawapannya sudah tentu ya, dan terdapat lebih daripada satu cara. Penyelesaian biasa termasuk: ExpiringMap, LoadingCache dan pembungkusan berasaskan HashMap. 2. Kesan teknikal untuk merealisasikan fungsi biasa cache, seperti strategi pemadaman lapuk, pemanasan data hotspot 3. ExpiringMap3.

Apakah cara untuk melaksanakan keselamatan benang untuk Peta di Jawa? Apakah cara untuk melaksanakan keselamatan benang untuk Peta di Jawa? Apr 19, 2023 pm 07:52 PM

Kaedah 1. Gunakan HashtableMapashtable=newHashtable(); Ini adalah perkara pertama yang semua orang fikirkan, jadi mengapa ia selamat untuk thread? Kemudian lihat pada kod sumbernya. Kita dapat melihat bahawa kaedah yang biasa kita gunakan seperti put, get, dan containsKey semuanya adalah segerak, jadi ia adalah thread-safe publicsynchronizedbooleancontainsKey(Objectkey){Entrytab[]=table;inthash=key. hashCode( );intindex=(hash&0x7FFFFFFF)%tab.leng

Cara menukar objek kepada Peta dalam Java - menggunakan BeanMap Cara menukar objek kepada Peta dalam Java - menggunakan BeanMap May 08, 2023 pm 03:49 PM

Terdapat banyak cara untuk menukar javabeans dan peta, seperti: 1. Tukar beans kepada json melalui ObjectMapper, dan kemudian menukar json kepada map Namun, kaedah ini adalah rumit dan tidak cekap, 10,000 beans telah ditukar dalam satu gelung. ia mengambil masa 12 saat! ! ! Tidak disyorkan. 2. Dapatkan atribut dan nilai kelas kacang melalui refleksi Java, dan kemudian tukarkannya kepada pasangan nilai kunci yang sepadan dengan peta Kaedah ini adalah yang kedua terbaik, tetapi ia lebih menyusahkan. 3. Melalui kaedah net.sf.cglib.beans.BeanMap di dalam kelas, kaedah ini sangat cekap Perbezaan antara kaedah ini dan kaedah kedua ialah kerana ia menggunakan cache, ia perlu dimulakan apabila mencipta bean untuk yang pertama. masa.

Bagaimana untuk mengkonfigurasi dan menggunakan modul peta dalam pelayan Nginx Bagaimana untuk mengkonfigurasi dan menggunakan modul peta dalam pelayan Nginx May 21, 2023 pm 05:14 PM

Arahan peta disediakan oleh modul ngx_http_map_module. Secara lalai, nginx memuatkan modul ini melainkan secara buatan --tanpa-http_map_module. Modul ngx_http_map_module boleh mencipta pembolehubah yang nilainya dikaitkan dengan nilai pembolehubah lain. Membenarkan pengelasan atau pemetaan serentak berbilang nilai kepada berbilang nilai yang berbeza dan storan dalam pembolehubah Arahan peta digunakan untuk mencipta pembolehubah, tetapi hanya menjalankan operasi pemetaan paparan apabila pembolehubah diterima memproses permintaan yang tidak merujuk pembolehubah, ini Modul ini tidak mempunyai kelemahan prestasi. 1.ngx_http_map_module modul arahan penerangan sintaks peta

Optimumkan prestasi peta bahasa Go Optimumkan prestasi peta bahasa Go Mar 23, 2024 pm 12:06 PM

Mengoptimumkan prestasi peta bahasa Go Dalam bahasa Go, peta ialah struktur data yang sangat biasa digunakan, digunakan untuk menyimpan koleksi pasangan nilai kunci. Walau bagaimanapun, prestasi peta mungkin terjejas apabila memproses sejumlah besar data. Untuk meningkatkan prestasi peta, kami boleh mengambil beberapa langkah pengoptimuman untuk mengurangkan kerumitan masa operasi peta, dengan itu meningkatkan kecekapan pelaksanaan program. 1. Pra-peruntukkan kapasiti peta Apabila membuat peta, kita boleh mengurangkan bilangan pengembangan peta dan meningkatkan prestasi program dengan pra-peruntukan kapasiti. Secara umumnya, kami

Menggunakan Hutool untuk pemprosesan kelas alat dalam pembangunan API Java Menggunakan Hutool untuk pemprosesan kelas alat dalam pembangunan API Java Jun 17, 2023 pm 10:53 PM

Apabila pembangun Java membangunkan API, mereka sering perlu berurusan dengan pelbagai kelas alat, yang boleh menjimatkan masa pembangunan dan meningkatkan kebolehgunaan semula kod. Hutool ialah perpustakaan alat Java yang menyediakan pelbagai kelas alat dan algoritma yang biasa digunakan, yang boleh meningkatkan kecekapan pembangunan API. Hutool menyokong Java 8 dan ke atas dan boleh digunakan dengan mudah dalam pelbagai senario, seperti pemprosesan rentetan, pemprosesan tarikh dan masa, penyulitan dan penyahsulitan, operasi fail, dll. Berikut adalah beberapa fungsi yang biasa digunakan. Pondok pemprosesan rentetan

Bagaimana untuk mendapatkan elemen peta dalam bahasa go Bagaimana untuk mendapatkan elemen peta dalam bahasa go Jan 16, 2023 am 10:38 AM

Dua kaedah: 1. Gunakan pernyataan "untuk julat" untuk melintasi peta untuk mendapatkan semua elemen, dengan sintaks "untuk kunci, nilai := julat mapName{...}". 2. Gunakan kunci sebagai indeks untuk mendapatkan elemen yang ditentukan, sintaksnya ialah "nilai, isOk := mapName[key]" mengembalikan dua nilai pulangan, nilai pulangan pertama ialah nilai yang diperoleh, jika kunci tidak wujud, pulangkan Nilai kosong, parameter kedua ialah nilai bool, menunjukkan sama ada nilai itu berjaya diperolehi.

See all articles