public static Document getDocument() throws Exception{
//1.创建工厂
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
//2.得到dom解析器
DocumentBuilder builder=factory.newDocumentBuilder();
//3.解析 return builder.parse(filename);//filename 为解析的
}
<? <书>
<书名 name = “xxx”>Java就业培训教程</书名>
<作者>张孝祥</作者>
<售价>59.00元</售价>
</书>
<书>
<书名>JavaScript网页开发</书名>
<作者>张孝祥</作者>
<售价>28.00元</售价>
</书>
</书架>
读操作1
NodeList list=document.getElementsByTagName("书名");
Node node= list.item(1);
String content=node.getTextContent();
System.out.println(content);
读操作2遍历所有节点
Node root = document.getElementsByTagName("书架").item(0);//得到根节点
list(root);
private void list(Node node) {
if(node instanceof Element ){
System.out.println(node.getNodeName());
}
NodeList list = node.getChildNodes();
for(int i=0;i<list.getLength();i++){
Node child = list.item(i);
list(child);
}
}
获得目标节点属性
Element bookname=(Element) document.getElementsByTagName("书名").item(0);
String value=bookname.getAttribute("name");
System.out.println(value);
增加节点
//创建节点
Element price = document.createElement("售价");
price.setTextContent("59.00元");
//创建节点挂载第一本书
Element book =(Element) document.getElementsByTagName("书").item(0);
book.appendChild(price);
//把更新的数据写回文档中
TransformerFactory tffactory=TransformerFactory.newInstance();
Transformer tf=tffactory.newTransformer();
tf.transform(new DOMSource(document), new StreamResult(new FileOutputStream(filename)));
指定位置插入
//创建节点
Element price = document.createElement("售价");
price.setTextContent("59.00元");
//得到参考节点
Element refNode=(Element) document.getElementsByTagName("售价").item(0);
//得到挂载的节点
Element book =(Element) document.getElementsByTagName("书").item(0);
//往book节点的指定位置插入
book.insertBefore(price, refNode);
//把更新的数据写回文档中
TransformerFactory tffactory=TransformerFactory.newInstance();
Transformer tf=tffactory.newTransformer();
tf.transform(new DOMSource(document), new StreamResult(new FileOutputStream(filename)));
添加节点的属性
Element bookname=(Element) document.getElementsByTagName("书名").item(0);
bookname.setAttribute("name", "xxxxxx");
删除节点
//得到要删除的节点
Element element=(Element) document.getElementsByTagName("售价").item(0);
element.getParentNode().removeChild(element);
//把更新的数据写回文档中
TransformerFactory tffactory=TransformerFactory.newInstance();
Transformer tf=tffactory.newTransformer();
tf.transform(new DOMSource(document), new StreamResult(new FileOutputStream(filename)));
原标题:第一天加入博客园,很高兴,相互学习嘛,最近看老方的视频学了下dom解析xml,可以分享下,多谢大家支持,
关键词:xml