1. 서문
JDOM은 무엇입니까?
JDOM은 순수한 Java 기술을 사용하여 XML 문서에서 구문 분석, 생성, 직렬화 및 작동하는 트리 구조를 기반으로 한 오픈 소스 프로젝트입니다. Java 프로그래밍을 직접 제공하고 Java 언어 (메소드 과부하, 컬렉션)의 기능을 사용하며 Sax 및 DOM의 기능을 결합하며 원래 XML을 가능한 한 간단하게 만듭니다. JDOM을 사용하여 XML을 구문 분석하는 것은 쉽습니다.
JDOM의 장점 :
1. JDOM은 Java 기술에 전념하며 DOM 애플리케이션보다 메모리를 덜 차지합니다.
2. JDOM은 XML 정보에 액세스하기위한 간단하고 논리적 인 기본 방법을 제공합니다.
3. XML 파일 외에도 JDOM은 다른 데이터 소스에 액세스 할 수 있습니다. 예를 들어 SQL 쿼리 결과에서 데이터에 액세스하기 위해 클래스를 생성 할 수 있습니다.
JDOM 구성 :
JDOM은 6 개의 패키지로 구성됩니다
요소 클래스는 XML 문서의 요소를 나타냅니다
org.jdom : XML 파일을 구문 분석하는 데 사용할 기본 클래스
org.jdom.adapters : dom 적응을 포함하는 Java 클래스
org.jdom.filter : XML 문서를 포함하는 필터 클래스
org.jdom.input : XML 문서를 읽는 Java 클래스
org.jdom.output : 출력 XML 문서를 포함하는 클래스
org.jdom.trans 양식 : JDOM XML 문서 인터페이스를 다른 XML 문서 인터페이스로 변환하는 Java 클래스가 포함되어 있습니다.
XML이란 무엇입니까?
XML은 널리 사용되는 확장 가능한 마크 업 언어입니다. JDOM, DOM4J, SAX 등과 같은 가장 일반적으로 사용되는 것들을 포함하여 Java에서 XML을 구문 분석하는 방법에는 여러 가지가 있습니다.
JDOM 패키지 다운로드 : http://www.jdom.org/downloads/index.html
여기서 저자의 코드는 Java를 사용하여 XML을 만들고 XML을 읽는 것입니다.
2. 운영
JDOM 패키지를 다운로드하고 파일 JDOM-2.0.6.jar, jdom-2.0.6-javadoc.jar 파일을 압축하고 패키지를 Lib 폴더로 가져 오십시오. (오류가 있으면 JDOM의 모든 패키지를 가져 오기)
예 1 : 이름을 가진 jdom을 사용하여 XML 파일 생성 people.xml
새로운 클래스 CareateJdom을 만듭니다
package com.book.jdom; import java.io.filenotfoundException; import java.io.fileoutputStream; import java.io.ioexception; import org.jdom2.document; import org.jdom2.Element; import org.jdom2.output.format; import org.jdom2.xmlputter; // restate xml xml xml xml xmlputter; // void main (string [] args) {// 요소 요소 인민, 학생 정의; People = new Element ( "People"); new Element ( "Student"); // 속성 학생을 설정하십시오. 학생 .setAttribute ( "name", "Zhang San"); student.setAttribute ( "Salary", "8000"); // 텍스트를 설정하십시오 .settext ( "hehe"); // root directory people에 추가하십시오. 문서 doc = 새 문서 (people); // 형식을 읽고 현재 formatformat format = format.getcompactformat (); // 현재 형식 형식 형식을 초기화합니다. Setencoding ( "UTF-8"); // XML 파일 Indents Format.SetIndent ( ""; // 구성 및 형식을 작성하십시오. XMLOUTPUTTER (format); try {// 서면 텍스트를 공장으로 보내고 파일 출력 스트림을 작성하여 데이터 xmlout.output (doc, new fileoutputStream ( "people.xml")); System.out.println ( "성공!");} catch (filenotFoundExcept E) blocke.printstacktrace ();} catch (ioexception e) {// todo 자동 유래 된 catch blocke.printstacktrace ();}}}}}/*실행 결과 : <? xml 버전 = "1.0"encoding = "utf-8"?> <people> <soyd>***/****/> </people>**.예제 2 : jdom을 사용하여 People.xml 파일을 구문 분석합니다
새로운 readxml 클래스를 만듭니다
package com.book.jdom; import java.io.ioexception; import java.util.list; import org.jdom2.document; import org.jdom2.element; import org.jdom2.jdomexception; import org.jdom2.input.saxbuilder; // public static void void main (string) (string) (string) {) Builder Parses XMLSAXBUILDER SAX = NEW SAXBUILDER (); // 데이터 문서를 수락하기위한 문서를 작성합니다. DOC를 수락 할 수 있습니다. {// people.xml 문서 doc = sax.build ( "people.xml"); // 루트 노드 요소 get get get <doc.getRooteLement (); for (int i = 0; i <list.size (); i ++) {요소 e = list.get (i); // 속성 값 value system.out.println ( "name :"+e.getAttributeValue ( "name")+"Salary :"+e.getAttributeValue ( "Salary")); // e.gettext (e.gettetln); (jdomexception e) {e.printstacktrace ();} catch (ioexception e) {e.printstacktrace ();}}}/** 실행 결과 :* 이름 : Zhang SAN SANARY : 8000 HEHE***구문 분석 XML
JDOM <? XML 버전 = "1.0"alcoding = "utf-8"?> <configuration> <key name = "china"> <vale name = "textKey"> China </value> <value name = "enabled"> true "> value> 38Photoidwidth </value> <value </value" 이름 = "PhotoidHeight"> 38 </value> <key name = "Adult"> <vale name = "CrownPercent"> 0.10 </value> <value name = "Headpercent"> 0.60aDULTHEDPERCENT </value> </key> <key name = "child"> <value name = "crownpercent"> 0.10 </value name = "headpercent"> 0.60childercent "> 0.60childercent"> 0.60childpercent "> 0.60child"> 0.60child "> value">. </key> <key name = "Australia"> <value name = "textkey"> australia </value> <value name = "enabled"> true </value> <value name = "photoidwidth"> 35photoidwidth </value> <value name = "photoidheight"> 45 </value> <key name = "value name = value"> 061 </value "> 0.061 </value"> 0.061 </value " 이름 = "Headpercent"> 0.756 "Adult"Headpercent </value> </key> <key name = "child"> <value name = "crownpercent"> 0.072 </value> <value name = "Headpercent"> 0.711childhedgepercent </value> </key> <key> <value name < "textkey"> value> <value name "> 이름 = "photoidwidth"> 35PhotoidWidth </value> <value name = "photoidHeight"> 45 </value> <key name = "Adult"> <value name = "crownpercent"> 0.064 </value> <value name = "headpercent"> 0.744aDuLtheAdpercent </key> <key name = "value"> 이름 = "CrownPercent"> 0.078 </value> <value name = "Headpercent"> 0.689childHeadpercent </value> </key> </key> </key> </configuration> import java.io.ioexception; import java.util.arraylist; import java.util.list; import org.jdom.document; org. org.jdom.jdomexception; import org.jdom.input.saxbuilder; public class readxml { / ** * @param args * / public static void main (string [] args) jdomexception, ioexception {saxbuilder sb = new saxbuilder (); // 문서 개체 구성 문서 문서 DOC = SB.BUILD (test.class.getClassLoader (). getResourCeasStream ( "Nation.xml")); // 루트 요소를 가져옵니다. root root = doc.getRootElement (); // <configuration> -> <key> 목록 <ELECT> list = root.getChildren ( "key")을 찾습니다. List <ELTECT> children = new ArrayList <ELTECT> (); List <ELTECT> childRens = new ArrayList <Elect> (); for (int i = 0; i <list.size (); i ++) {요소 요소 = (요소) list.get (i); system.out.print (element.getAttributeValue ( "name")); // <configuration> -> <key> -> <value> children = element.getChildren ( "value")을 찾으십시오. for (int j = 0; // <configuration> -> <key> -> <value name = "photoidwidth"> if (elementChildren.getAttributeValue ( "name"). equals ( "photoidwidth")) {// get <key> -> <value name = "photoidwidth"> attribute 값 System.out.print ( "<----------------" "+ElementChildren.getAttributeValue ("name ")); // <configuration>-> <key>-> <value name ="photoidwidth "> tag system.out.print (", "+Elementchildren.getText ()); <key> children.getChildren ( "key"); <key name = "child"> -> <alue "> elementchildrens.getChildren (int k = 0; k <childrens.size (); k ++) {eleMPLE) childrens.- <key name =" "; name = "Headpercent"> if (elementchildrens.getAttributeValue ( "name"). equals ( "Headpercent")) {System.out.println ( "<----------->"+ElementChildRens.getText ()); }}}}} }}打印结果:China<--------->PhotoIDWidth,38PhotoIDWidth<--------->0.60ChildHeadPercentAustralia<--------->PhotoIDWidth,35PhotoIDWidth<--------->0.711ChildHeadPercentAustria<--------->PhotoIDWidth,35PhotoIDWidth<--------->0.689ChildHeadPercent위의 것은 Java 웹에서 Java를 사용하여 XML을 구문 분석하는 방법입니다. 나는 그것이 당신에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!