백엔드 개발 XML/RSS 튜토리얼 Map 도구 클래스에 XML 문자의 샘플 코드 공유

Map 도구 클래스에 XML 문자의 샘플 코드 공유

Apr 01, 2017 pm 01:13 PM

XML문자 변환도구 클래스 샘플 코드 공유

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; 
    }
로그인 후 복사

위 내용은 Map 도구 클래스에 XML 문자의 샘플 코드 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

springboot는 yml 파일의 목록, 배열, 지도 컬렉션 및 개체를 어떻게 읽나요? springboot는 yml 파일의 목록, 배열, 지도 컬렉션 및 개체를 어떻게 읽나요? May 11, 2023 am 10:46 AM

application.yml은 목록 컬렉션을 정의합니다. 첫 번째 방법은 @ConfigurationProperties 주석을 사용하여 목록 컬렉션 유형:code:status:-200-300-400-500의 모든 값을 얻는 것입니다. 여기서 주목해야 할 점은 목록 Collection을 정의하고 먼저 구성 클래스 Bean을 정의한 다음 @ConfigurationProperties 주석을 사용하여 목록 컬렉션 값을 얻는다는 것입니다. @Component는 엔티티 클래스를 Spring 관리 @ConfigurationPropertie에 넘겨줍니다.

Java에서 만료 시간 맵을 설정하는 방법 Java에서 만료 시간 맵을 설정하는 방법 May 04, 2023 am 10:13 AM

1. 기술적 배경 실제 프로젝트 개발에서는 시스템의 가용성과 견고성을 향상시키기 위해 캐싱 미들웨어(예: redis, MemCache 등)를 자주 사용합니다. 하지만 프로젝트가 상대적으로 단순하다면 캐싱을 사용하기 위해 시스템의 복잡성을 높이기 위해 Redis와 같은 미들웨어를 특별히 도입할 필요가 없는 경우가 많습니다. 그렇다면 Java 자체에는 유용한 경량 캐싱 구성 요소가 있습니까? 물론 대답은 '그렇다'이며, 방법은 여러 가지가 있습니다. 일반적인 솔루션에는 ExpiringMap, LoadingCache 및 HashMap 기반 패키징이 포함됩니다. 2. 오래된 삭제 전략, 핫스팟 데이터 워밍업 등 캐시의 공통 기능을 구현하기 위한 기술적 효과 3. ExpiringMap3.

Java에서 Map에 대한 스레드 안전성을 구현하는 방법은 무엇입니까? Java에서 Map에 대한 스레드 안전성을 구현하는 방법은 무엇입니까? Apr 19, 2023 pm 07:52 PM

방법 1. HashtableMapashtable=newHashtable();을 사용하세요. 이것이 모두가 가장 먼저 생각하는 것인데, 왜 스레드로부터 안전할까요? 그런 다음 소스 코드를 살펴보면 put, get 및 containKey와 같이 일반적으로 사용되는 메서드가 모두 동기식이므로 스레드로부터 안전한 publicsynchronizedbooleancontainsKey(Objectkey){Entrytab[]=table;inthash=key임을 알 수 있습니다. hashCode( );intindex=(hash&0x7FFFFFFF)%tab.leng

Java에서 객체를 맵으로 변환하는 방법 - BeanMap을 사용하여 Java에서 객체를 맵으로 변환하는 방법 - BeanMap을 사용하여 May 08, 2023 pm 03:49 PM

javabeans와 map을 변환하는 방법에는 여러 가지가 있습니다. 1. ObjectMapper를 통해 Bean을 json으로 변환한 다음 json을 map으로 변환합니다. 그러나 이 방법은 테스트 후에 10,000개의 Bean이 루프로 변환되었습니다. 12초 걸립니다! ! ! 2. Java Reflection을 통해 Bean 클래스의 속성과 값을 얻은 다음 이를 맵에 해당하는 키-값 쌍으로 변환하는 방법이 두 번째로 좋지만 조금 더 번거롭습니다. 3. 클래스의 net.sf.cglib.beans.BeanMap 메소드를 통해 이 메소드는 매우 효율적입니다. 두 번째 메소드와 차이점은 캐시를 사용하기 때문에 첫 번째 Bean을 생성할 때 초기화해야 한다는 것입니다. 시간.

Go 언어 맵의 성능 최적화 Go 언어 맵의 성능 최적화 Mar 23, 2024 pm 12:06 PM

Go 언어 맵의 성능 최적화 Go 언어에서 맵은 키-값 쌍 모음을 저장하는 데 사용되는 매우 일반적으로 사용되는 데이터 구조입니다. 그러나 대량의 데이터를 처리하는 경우 지도 성능이 저하될 수 있습니다. 지도의 성능을 향상시키기 위해 몇 가지 최적화 조치를 취하여 지도 작업의 시간 복잡성을 줄여 프로그램의 실행 효율성을 향상시킬 수 있습니다. 1. 맵 용량을 사전 할당합니다. 맵 생성 시 용량을 사전 할당하여 맵 확장 횟수를 줄이고 프로그램 성능을 향상시킬 수 있습니다. 일반적으로 우리는

Nginx 서버에서 맵 모듈을 구성하고 사용하는 방법 Nginx 서버에서 맵 모듈을 구성하고 사용하는 방법 May 21, 2023 pm 05:14 PM

맵 명령은 ngx_http_map_module 모듈에서 제공됩니다. 기본적으로 nginx는 인위적으로 --without-http_map_module을 사용하지 않는 한 이 모듈을 로드합니다. ngx_http_map_module 모듈은 값이 다른 변수의 값과 연관된 변수를 생성할 수 있습니다. 여러 값을 여러 다른 값으로 분류하거나 동시에 매핑하고 변수에 저장하는 것을 허용합니다. 맵 지시어는 변수를 생성하는 데 사용되지만 변수가 허용되는 경우에만 뷰 매핑 작업을 수행합니다. 변수를 참조하지 않는 요청을 처리하는 경우 이 모듈에는 성능 단점이 없습니다. 1.ngx_http_map_module 모듈 명령어 설명 맵 구문

Java API 개발에서 도구 클래스 처리를 위해 Hutool 사용 Java API 개발에서 도구 클래스 처리를 위해 Hutool 사용 Jun 17, 2023 pm 10:53 PM

Java 개발자가 API를 개발할 때 개발 시간을 절약하고 코드 재사용성을 향상시킬 수 있는 다양한 도구 클래스를 처리해야 하는 경우가 많습니다. Hutool은 API 개발의 효율성을 향상시킬 수 있는 풍부한 도구 클래스와 일반적으로 사용되는 알고리즘을 제공하는 Java 도구 라이브러리입니다. Hutool은 Java 8 이상을 지원하며 문자열 처리, 날짜 및 시간 처리, 암호화 및 암호 해독, 파일 작업 등과 같은 다양한 시나리오에서 쉽게 사용할 수 있습니다. 다음은 일반적으로 사용되는 몇 가지 기능입니다. 스트링 프로세싱 헛

Go 언어로 지도 요소를 얻는 방법 Go 언어로 지도 요소를 얻는 방법 Jan 16, 2023 am 10:38 AM

두 가지 방법: 1. "for range" 문을 사용하여 맵을 탐색하여 "for key, value := range mapName{...}" 구문으로 모든 요소를 ​​얻습니다. 2. 키를 인덱스로 사용하여 지정된 요소를 얻습니다. 구문은 "value, isOk := mapName[key]"입니다. 두 개의 반환 값을 반환하고, 첫 번째 반환 값은 얻은 값입니다. 키가 존재하지 않으면 반환합니다. 비어 있는 값, 두 번째 매개변수는 값을 성공적으로 얻었는지 여부를 나타내는 부울 값입니다.

See all articles