찾다
백엔드 개발XML/RSS 튜토리얼dom4j를 사용하여 Java에서 xml 구문 분석(샘플 코드)

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

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

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

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

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

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

xml 문서:

<?xml version="1.0" encoding="UTF-8"?> 
<books> 
   <book id="001"> 
      <title>Harry Potter</title> 
      <author>J K. Rowling</author> 
   </book> 
   <book id="002"> 
      <title>Learning XML</title> 
      <author>Erik T. Ray</author> 
   </book> 
</books>

예 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<Element> childElements = root.elements();
  for (Element child : childElements) {
   //未知属性名情况下
   /*List<Attribute> attributeList = child.attributes();
   for (Attribute attr : attributeList) {
    System.out.println(attr.getName() + ": " + attr.getValue());
   }*/

   //已知属性名情况下
   System.out.println("id: " + child.attributeValue("id"));

   //未知子元素名情况下
   /*List<Element> 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 중국어 웹사이트에 주목하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
XML에서 속성 값을 수정하는 제한 사항은 얼마입니까?XML에서 속성 값을 수정하는 제한 사항은 얼마입니까?Mar 03, 2025 pm 05:32 PM

이 기사는 XML 속성 값을 수정하고, 잘 형성, 스키마/DTD 검증 및 문자 인코딩에서 비롯된 제한을 강조합니다. 부적절한 탈출 및 데이터 유형 불일치와 같은 함정을 강조하고 Sicurit을 해결합니다.

뉴스 집계 및 콘텐츠 큐 레이션에 RSS 피드를 사용하는 방법은 무엇입니까?뉴스 집계 및 콘텐츠 큐 레이션에 RSS 피드를 사용하는 방법은 무엇입니까?Mar 10, 2025 pm 03:47 PM

이 기사는 효율적인 뉴스 집계 및 콘텐츠 큐 레이션을 위해 RSS 피드를 사용하는 방법을 설명합니다. RSS 리더 (Feedly 및 Inoreader와 같은)를 사용하여 피드에 가입하고, 피드를 구성하고, 대상 콘텐츠에 대한 기능을 활용하는 것에 대해 자세히 설명합니다. Bene

XML 수정이 성능에 영향을 미칩니 까?XML 수정이 성능에 영향을 미칩니 까?Mar 03, 2025 pm 05:27 PM

XML 컨텐츠 수정은 특히 큰 파일의 응용 프로그램 성능에 큰 영향을 미칩니다. 구문 분석, DOM 조작, 직렬화 및 I/O 운영이 이에 기여합니다. 최적화 전략에는 스트리밍 파서 사용, 최소화 d가 포함됩니다. d

큰 XML 파일을 수정하는 방법큰 XML 파일을 수정하는 방법Mar 03, 2025 pm 05:31 PM

이 기사는 효율적인 대규모 XML 파일 수정을 해결합니다. 그것은 메모리 내 처리의 비 효율성을 강조하여 색소폰 및 스테세스 구문 분석과 같은 스트리밍 접근법을 옹호합니다. 최적화 전략에는 증분 구문 분석, 최적화 된 데이터 S가 포함됩니다

XML 및 시맨틱 웹 기술을 어떻게 통합 할 수 있습니까?XML 및 시맨틱 웹 기술을 어떻게 통합 할 수 있습니까?Mar 10, 2025 pm 05:50 PM

이 기사는 XML 및 시맨틱 웹 기술을 통합합니다. 핵심 문제는 시맨틱 상호 운용성을 위해 XML의 구조화 된 데이터를 RDF 트리플에 매핑하는 것입니다. 모범 사례에는 온톨로지 정의, 전략적 매핑 접근 방식, 신중한 ATT가 포함됩니다.

XML 컨텐츠를 데이터로 변환하는 방법XML 컨텐츠를 데이터로 변환하는 방법Mar 03, 2025 pm 05:25 PM

이 기사는 XML 데이터 변환 방법을 자세히 설명합니다. XML 문서 내에서 데이터 형식 변환의 과제를 해결하여 XSLT 및 스트림 처리와 같은 효율적인 기술을 강조합니다. 이 기사는 또한 Sch와 같은 잠재적 인 함정을 다룹니다

RSS를 사용하여 컨텐츠 신디케이션을 구현하려면 어떻게해야합니까?RSS를 사용하여 컨텐츠 신디케이션을 구현하려면 어떻게해야합니까?Mar 10, 2025 pm 03:41 PM

이 기사는 RSS 피드를 사용하여 컨텐츠 신디케이트 구현에 대해 자세히 설명합니다. RSS 피드 생성, 대상 웹 사이트 식별, 피드 제출 및 모니터링 효과가 포함됩니다. 제한된 제어 및 풍부한 미디어 지원과 같은 과제도 원반입니다.

무단 액세스에 대해 RSS 피드를 어떻게 보호 할 수 있습니까?무단 액세스에 대해 RSS 피드를 어떻게 보호 할 수 있습니까?Mar 10, 2025 pm 03:42 PM

이 기사는 무단 액세스에 대한 RSS 피드를 보호하는 자세한 내용입니다. HTTP 인증, 속도 제한이있는 API 키, HTTPS 및 컨텐츠 난독 화 (권한) 등 다양한 방법을 검사합니다. 모범 사례에는 IP 제한, 리버가 포함됩니다

See all articles

핫 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를 무료로 생성하십시오.

뜨거운 도구

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.