자바 dom4j 생 성 해석 xml 문서 프로 세 스 분석
특징:
1.JDOM 의 스마트 분기 로 기본 XML 문 서 를 초과 하 는 많은 기능 을 합 쳤 습 니 다.
2.인터페이스 와 추상 적 인 기본 적 인 방법 을 사용한다.
3.성능 이 우수 하고 유연성 이 좋 으 며 기능 이 강하 고 사용 하기 쉬 운 특징 을 가진다.
4.오픈 소스 파일
jar 패키지:dom4j-1.6.1.jar
book.xml 만 들 기:
package com.example.xml.dom4j;
import java.io.FileWriter;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
/**
* dom4j xml
*
*/
public class Dom4JTest4 {
public static void main(String[] args) throws Exception {
// :
Element root2 = DocumentHelper.createElement("bookstore");
Document document2 = DocumentHelper.createDocument(root2);
// :add
Element book1 = root2.addElement("book");
book1.addAttribute("id", "1");
book1.addAttribute("name", " ");
//
book1.addElement("name").setText(" ");
book1.addElement("author").setText(" ");
book1.addElement("year").setText("2014");
book1.addElement("price").setText("109");
//
Element book2 = root2.addElement("book");
book2.addAttribute("id", "2");
book2.addAttribute("name", " ");
//
book2.addElement("name").setText(" ");
book2.addElement("author").setText(" ");
book2.addElement("year").setText("2007");
book2.addElement("price").setText("29");
// 4 , true
OutputFormat format = new OutputFormat(" ", true);
// , flush() ,
XMLWriter xmlWriter3 = new XMLWriter(new FileWriter("book.xml"),format);
xmlWriter3.write(document2);
xmlWriter3.flush();
// close()
}
}
실행 결과:book.xml 분석:
package com.example.xml.dom4j;
import java.io.File;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
/**
* dom4j xml
*
*/
public class Dom4JTest3 {
public static void main(String[] args) {
// books.xml
// SAXReader reader
SAXReader reader = new SAXReader();
try {
// reader read books.xml , docuemnt 。
Document document = reader.read(new File("book.xml"));
// document bookstore
Element bookStore = document.getRootElement();
System.out.println(" :"+bookStore.getName());
// element elementIterator
Iterator it = bookStore.elementIterator();
// , ( )
while (it.hasNext()) {
System.out.println("===== =====");
Element book = (Element) it.next();
System.out.println(" :"+book.getName());
// book
List<Attribute> bookAttrs = book.attributes();
for (Attribute attr : bookAttrs) {
System.out.println(" :" + attr.getName() + "-- :"
+ attr.getValue());
}
Iterator itt = book.elementIterator();
while (itt.hasNext()) {
Element bookChild = (Element) itt.next();
System.out.println(" :" + bookChild.getName() + "-- :" + bookChild.getStringValue());
}
System.out.println("===== =====");
}
} catch (DocumentException e) {
e.printStackTrace();
}
}
}
실행 결과:이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.