解析XMLファイルのDom 4 J
XMLリソース:
Maven Repository-Dom4J:https://mvnrepository.com/artifact/dom4j/dom4j
Maven Repository-Jaxen:https://mvnrepository.com/artifact/jaxen/jaxen
XML実戦:
ターゲットファイル(resources/car.xml)
読み取り(Dom 4 jParseTest.java):
追加-デフォルト(Dom 4 jParseTest.java):
結果ファイル(car.xml)
追加-場所の指定(Dom 4 jParseTest.java):
結果ファイル(car.xml)
更新(Dom 4 jParseTest.java):
結果ファイル(car.xml)
削除(Dom 4 jParseTest.java):
結果ファイル(car.xml)
作成(Dom 4 jParseTest.java):
結果ファイル(car.xml)
StringをXML(Dom 4 jParseTest.java):
結果ファイル(car.xml)
XMLをString(Dom 4 jParseTest.java)に変換:
XPath位置決め(Dom 4 jParseTest.java):
Maven Repository-Dom4J:https://mvnrepository.com/artifact/dom4j/dom4j
Maven Repository-Jaxen:https://mvnrepository.com/artifact/jaxen/jaxen
XML実戦:
ターゲットファイル(resources/car.xml)
>
>
>
>
>
>
>
読み取り(Dom 4 jParseTest.java):
package com.example.test;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import org.junit.Test;
import java.io.*;
import java.util.List;
public class Dom4jParseTest {
private File file = new File(this.getClass().getClassLoader().getResource("car.xml").getPath());
@Test
public void dom4jRetrieve(){
try {
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(file);
//
Element rootElement = document.getRootElement();
System.out.println(rootElement.getName());
//
List elements = rootElement.elements();
System.out.println(" :" + elements.size());
for (Element element:elements){
//
System.out.println(" :" + element.elementText(" "));
System.out.println(" :" + element.elementText(" "));
//
System.out.println(" :" + element.element(" ").attribute(" ").getValue());
}
} catch (DocumentException e) {
e.printStackTrace();
}
}
}
追加-デフォルト(Dom 4 jParseTest.java):
package com.example.test;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import org.junit.Test;
import java.io.*;
public class Dom4jParseTest {
private File file = new File(this.getClass().getClassLoader().getResource("car.xml").getPath());
@Test
public void dom4jAdd(){
try {
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(file);
//
Element firstElement = (Element)document.getRootElement().elements().get(0);
// “ ” “30”
firstElement.addElement(" ").setText("30");
// XML
OutputStream outputStream = new FileOutputStream(file);
OutputFormat outputFormat = OutputFormat.createPrettyPrint();
XMLWriter xmlWriter = new XMLWriter(outputStream, outputFormat);
xmlWriter.write(document);
xmlWriter.close();
} catch (DocumentException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
結果ファイル(car.xml)
>
>
30 >
>
>
>
>
>
追加-場所の指定(Dom 4 jParseTest.java):
package com.example.test;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import org.junit.Test;
import java.io.*;
import java.util.List;
public class Dom4jParseTest {
private File file = new File(this.getClass().getClassLoader().getResource("car.xml").getPath());
@Test
public void dom4jAdd(){
try {
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(file);
//
List elements = document.getRootElement().elements();
//
Element element = DocumentHelper.createElement(" ");
element.setText(" ");
//
elements.add(1, element);
// XML
OutputStream outputStream = new FileOutputStream(file);
OutputFormat outputFormat = OutputFormat.createPrettyPrint();
XMLWriter xmlWriter = new XMLWriter(outputStream, outputFormat);
xmlWriter.write(document);
xmlWriter.close();
} catch (DocumentException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
結果ファイル(car.xml)
>
>
>
>
>
>
>
>
更新(Dom 4 jParseTest.java):
package com.example.test;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import org.junit.Test;
import java.io.*;
public class Dom4jParseTest {
private File file = new File(this.getClass().getClassLoader().getResource("car.xml").getPath());
@Test
public void dom4jUpdate(){
try {
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(file);
//
Element firstElement = (Element)document.getRootElement().elements().get(0);
// “ ”
firstElement.element(" ").setText(" ");
// XML
OutputStream outputStream = new FileOutputStream(file);
OutputFormat outputFormat = OutputFormat.createPrettyPrint();
XMLWriter xmlWriter = new XMLWriter(outputStream, outputFormat);
xmlWriter.write(document);
xmlWriter.close();
} catch (DocumentException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
結果ファイル(car.xml)
>
>
>
>
>
>
>
削除(Dom 4 jParseTest.java):
package com.example.test;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import org.junit.Test;
import java.io.*;
public class Dom4jParseTest {
private File file = new File(this.getClass().getClassLoader().getResource("car.xml").getPath());
@Test
public void dom4jDelete(){
try {
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(file);
//
Element firstElement = (Element)document.getRootElement().elements().get(0);
//
firstElement.remove(firstElement.element(" "));
// XML
OutputStream outputStream = new FileOutputStream(file);
OutputFormat outputFormat = OutputFormat.createPrettyPrint();
XMLWriter xmlWriter = new XMLWriter(outputStream, outputFormat);
xmlWriter.write(document);
xmlWriter.close();
} catch (DocumentException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
結果ファイル(car.xml)
>
>
>
>
>
>
作成(Dom 4 jParseTest.java):
package com.example.test;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
import org.junit.Test;
import java.io.*;
public class Dom4jParseTest {
private File file = new File(this.getClass().getClassLoader().getResource("car.xml").getPath());
@Test
public void dom4jCreate(){
try {
// XML
Document document = DocumentHelper.createDocument();
//
document.addElement("root").setText(" ");
// XML
OutputStream outputStream = new FileOutputStream(file);
OutputFormat outputFormat = OutputFormat.createPrettyPrint();
XMLWriter xmlWriter = new XMLWriter(outputStream, outputFormat);
xmlWriter.write(document);
xmlWriter.close();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
結果ファイル(car.xml)
StringをXML(Dom 4 jParseTest.java):
package com.example.test;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
import org.junit.Test;
import java.io.*;
public class Dom4jParseTest {
private File file = new File(this.getClass().getClassLoader().getResource("car.xml").getPath());
@Test
public void dom4jStringToXML(){
try {
String text = " >";
//String->XML
Document document = DocumentHelper.parseText(text);
// XML
OutputStream outputStream = new FileOutputStream(file);
OutputFormat outputFormat = OutputFormat.createPrettyPrint();
XMLWriter xmlWriter = new XMLWriter(outputStream, outputFormat);
xmlWriter.write(document);
xmlWriter.close();
} catch (DocumentException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
結果ファイル(car.xml)
>
XMLをString(Dom 4 jParseTest.java)に変換:
package com.example.test;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.junit.Test;
import java.io.*;
public class Dom4jParseTest {
private File file = new File(this.getClass().getClassLoader().getResource("car.xml").getPath());
@Test
public void dom4jXMLToString(){
try {
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(file);
//
Element rootElement = document.getRootElement();
//XML-String
String xmlStr = rootElement.asXML();
System.out.println(xmlStr);
} catch (DocumentException e) {
e.printStackTrace();
}
}
}
XPath位置決め(Dom 4 jParseTest.java):
package com.example.test;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.junit.Test;
import java.io.*;
import java.util.List;
public class Dom4jParseTest {
private File file = new File(this.getClass().getClassLoader().getResource("car.xml").getPath());
@Test
public void dom4jXMLToString(){
try {
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(file);
//
String xpath = "// ";
List elements = document.selectNodes(xpath);
for (Element element:elements){
System.out.println(element.getText());
}
//
Element firstElement = (Element) document.selectSingleNode(xpath);
System.out.println(firstElement.getText());
// 2020
String xpath2020 = "// [@ ='2020']";
Element secondElement = (Element) document.selectSingleNode(xpath2020);
System.out.println(secondElement.getText());
} catch (DocumentException e) {
e.printStackTrace();
}
}
}