자바 DOM 읽 기 쓰기 XML 사용
55472 단어 JavaXML——프로 그래 밍 잡다 한 항목————
XML 파일
xml version="1.0" encoding="UTF-8"?>
<persons>
<person>
<name>Assadname>
<age>22age>
<home>Shanghaihome>
person>
<person>
<name>Johnname>
<age>19age>
<home>GuangZhouhome>
person>
persons>
1、读取XML文件
//Java XML
public static void readXML(){
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
try{
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new File("test.xml"));
Element rootElement = document.getDocumentElement(); // Document ;
NodeList personList = rootElement.getElementsByTagName("person"); //
for(int i=0;i<personList.getLength();i++){ // person
Element person = (Element)personList.item(i);
for(Node node = person.getFirstChild() ; node!=null ; node = node.getNextSibling()){ // perosn
if(node.getNodeType() == Node.ELEMENT_NODE){
String key = node.getNodeName(); //
String value = node.getFirstChild().getNodeValue(); //
System.out.println(key+":"+value);}
}
}
}catch(Exception ex){
ex.printStackTrace();
}
- }
2、 XML
public static void updateAndSave(){
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
try{
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new File("test.xml"));
Element persons = document.getDocumentElement(); //
//
Element person = document.createElement("person");
Element name = document.createElement("name"); //
name.setTextContent("Petter");
Element age = document.createElement("age");
age.setTextContent("20");
Element home = document.createElement("home");
home.setTextContent("ShengZhen");
person.appendChild(name); //
person.appendChild(age);
person.appendChild(home);
persons.appendChild(person);
// ="assad" ;
NodeList personList = persons.getElementsByTagName("person");
for(int i=0;i<personList.getLength();i++){
Element person_i = (Element)personList.item(i);
Element name_i = (Element)person_i.getElementsByTagName("name").item(0);
if(name_i.getFirstChild().getNodeValue().equals("Assad")){
persons.removeChild(person_i); // ;
break;
}
}
//
TransformerFactory factory_t = TransformerFactory.newInstance();
Transformer former = factory_t.newTransformer();
former.setOutputProperty(OutputKeys.INDENT,"yes"); // XML ;
former.transform(new DOMSource(document),new StreamResult(new File("test_update.xml")));
}catch(Exception ex){
ex.printStackTrace();
}
}
3、 XML
public static void create(){
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
try{
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.newDocument();
//
Element bookstore = doc.createElement("bookstore"); //
Element book = doc.createElement("book"); //
Element title = doc.createElement("title");
title.setTextContent("How to Learn Java");
Element author = doc.createElement("author");
author.setTextContent("Json");
book.appendChild(title);
book.appendChild(author);
bookstore.appendChild(book);
doc.appendChild(bookstore);
//
TransformerFactory factory_t = TransformerFactory.newInstance();
Transformer former = factory_t.newTransformer();
former.setOutputProperty(OutputKeys.INDENT,"yes");
former.transform(new DOMSource(doc),new StreamResult(new File("test_create.xml")));
}catch(Exception ex){
ex.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에 따라 라이센스가 부여됩니다.