dom4j를 사용하여 Java에서 xml 구문 분석(샘플 코드)

高洛峰
풀어 주다: 2017-01-11 11:52:57
원래의
1559명이 탐색했습니다.

Java에는 이미 Dom과 Sax라는 두 가지 표준 구문 분석 방법이 있지만

저 같은 초보자에게는 작동하기 쉽지 않은 코드 중 일부는

이를 위해 , 훌륭한 타사 개발 그룹이 Jdom 및 Dom4j와 같은 도구를 개발했습니다

현재 추세를 고려하여 여기서는 재귀 및 기타 복잡한 작업을 포함하지 않고 Dom4j의 기본 사용법에 대해 이야기하겠습니다

Dom4j에는 다양한 용도가 있고 공식 웹사이트의 예제는 약간 모호하므로 여기서는 다루지 않겠습니다

먼저 XML 문서를 생성한 다음 이를 구문 분석할 수 있습니다

xml 문서:

   Harry Potter J K. Rowling   Learning XML Erik T. Ray  
로그인 후 복사

예 1: List를 사용하여 xml 구문 분석

import java.io.File; import java.util.List; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class Demo { public static void main(String[] args) throws Exception { SAXReader reader = new SAXReader(); File file = new File("books.xml"); Document document = reader.read(file); Element root = document.getRootElement(); List childElements = root.elements(); for (Element child : childElements) { //未知属性名情况下 /*List attributeList = child.attributes(); for (Attribute attr : attributeList) { System.out.println(attr.getName() + ": " + attr.getValue()); }*/ //已知属性名情况下 System.out.println("id: " + child.attributeValue("id")); //未知子元素名情况下 /*List elementList = child.elements(); for (Element ele : elementList) { System.out.println(ele.getName() + ": " + ele.getText()); } System.out.println();*/ //已知子元素名的情况下 System.out.println("title" + child.elementText("title")); System.out.println("author" + child.elementText("author")); //这行是为了格式化美观而存在 System.out.println(); } } }
로그인 후 복사

예 2: Iterator를 사용하여 xml 구문 분석

import java.io.File; import java.util.Iterator; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class Demo { public static void main(String[] args) throws Exception { SAXReader reader = new SAXReader(); Document document = reader.read(new File("books.xml")); Element root = document.getRootElement(); Iterator it = root.elementIterator(); while (it.hasNext()) { Element element = (Element) it.next(); //未知属性名称情况下 /*Iterator attrIt = element.attributeIterator(); while (attrIt.hasNext()) { Attribute a = (Attribute) attrIt.next(); System.out.println(a.getValue()); }*/ //已知属性名称情况下 System.out.println("id: " + element.attributeValue("id")); //未知元素名情况下 /*Iterator eleIt = element.elementIterator(); while (eleIt.hasNext()) { Element e = (Element) eleIt.next(); System.out.println(e.getName() + ": " + e.getText()); } System.out.println();*/ //已知元素名情况下 System.out.println("title: " + element.elementText("title")); System.out.println("author: " + element.elementText("author")); System.out.println(); } } }
로그인 후 복사

실행 결과:

dom4j를 사용하여 Java에서 xml 구문 분석(샘플 코드)

예 3: xml 문서를 생성하고 파일로 출력

import java.io.File; import java.io.FileOutputStream; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.XMLWriter; public class Demo { public static void main(String[] args) throws Exception { Document doc = DocumentHelper.createDocument(); //增加根节点 Element books = doc.addElement("books"); //增加子元素 Element book1 = books.addElement("book"); Element title1 = book1.addElement("title"); Element author1 = book1.addElement("author"); Element book2 = books.addElement("book"); Element title2 = book2.addElement("title"); Element author2 = book2.addElement("author"); //为子节点添加属性 book1.addAttribute("id", "001"); //为元素添加内容 title1.setText("Harry Potter"); author1.setText("J K. Rowling"); book2.addAttribute("id", "002"); title2.setText("Learning XML"); author2.setText("Erik T. Ray"); //实例化输出格式对象 OutputFormat format = OutputFormat.createPrettyPrint(); //设置输出编码 format.setEncoding("UTF-8"); //创建需要写入的File对象 File file = new File("D:" + File.separator + "books.xml"); //生成XMLWriter对象,构造函数中的参数为需要输出的文件流和格式 XMLWriter writer = new XMLWriter(new FileOutputStream(file), format); //开始写入,write方法中包含上面创建的Document对象 writer.write(doc); } }
로그인 후 복사

실행 결과:

dom4j를 사용하여 Java에서 xml 구문 분석(샘플 코드)

Java에서 dom4j를 사용하여 xml(샘플 코드)을 구문 분석하는 방법에 대한 더 많은 관련 기사를 보려면 PHP 중국어 웹사이트에 주목하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!