一、java 自带类库
1. dom方式解析
1 、解析、查询、修改 xml 文档:获取文件流,创建工厂类,解析文档,获取
Document
对象后,可进行任意的查询
InputStream in = QueryTest.class.getClassLoader().getResourceAsStream("input.xml");
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
Document document = factory.newDocumentBuilder().parse(in);
2、创建 xml 文档
为了得到以下 xml 文档
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<cars>
<supercars company="Ferrari">
<carname type="formula one">Ferrari 101</carname>
</supercars>
</cars>
可使用以下 java 代码
public class CreateTest {
public static void main(String[] args) throws Exception {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
Document document = factory.newDocumentBuilder().newDocument();
// cars
Element cars = document.createElement("cars");
document.appendChild(cars);
// supercars
Element supercars = document.createElement("supercars");
supercars.setAttribute("company","Ferrari");
cars.appendChild(supercars);
//carname Element
Element carname = document.createElement("carname");
carname.setAttribute("type","formula one");
carname.appendChild(document.createTextNode("Ferrari 101"));
supercars.appendChild(carname);
// write the content into the xml file
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(document);
StreamResult streamResult = new StreamResult(new File("cars.xml"));
transformer.transform(source,streamResult);
// output to console fo testing
StreamResult consoleResult = new StreamResult(System.out);
transformer.transform(source,consoleResult);
}
}