使用JAXP Dom解析xml
来源:互联网 发布:手机淘宝注册开店流程 编辑:程序博客网 时间:2024/06/03 15:58
一 将xml 载入内存
//1.创建工厂
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();//2。得到dom解析器
DocumentBuilder builder=factory.newDocumentBuilder();
//3。解析xml文档,得到代表文档的document
Document document=builder.parse("src/book.xml");
二 读取xml内容
// 获取节点对象 返回值是一个集合
NodeList list = document.getElementsByTagName("书名");
// 获取集合中第二项
Node node = list.item(1);
NodeList list = document.getElementsByTagName("书名");
// 获取集合中第二项
Node node = list.item(1);
//其实nodelist里面存的元素是Element 可以强转为Element 子类比父类 有更多的
Element element = (Element)list.item(1);
//读取element中的属性信息
String info=element.getAttribute("xx");
三 添加xml内容
// 创建节点
Element price = document.createElement("售价");
Element price = document.createElement("售价");
//设置节点内容
price.setTextContent("59.0元");
// 把创建的节点放到第一本书上
document.getElementsByTagName("书").item(0).appendChild(price);
price.setTextContent("59.0元");
// 把创建的节点放到第一本书上
document.getElementsByTagName("书").item(0).appendChild(price);
//*********************************************
// 向文档中指定位置上添加节点
/ 创建节点
Element price = document.createElement("售价");
price.setTextContent("59.0元");
// 得到参考节点
Element refNode = (Element) document.getElementsByTagName("售价").item(0);
// 得到挂崽的节点
Element book = (Element) document.getElementsByTagName("书").item(0);
// 把创建的节点放到第一本书上
document.getElementsByTagName("书").item(0).appendChild(price);
// 往book节点指定位置插值
book.insertBefore(price, refNode);
Element price = document.createElement("售价");
price.setTextContent("59.0元");
// 得到参考节点
Element refNode = (Element) document.getElementsByTagName("售价").item(0);
// 得到挂崽的节点
Element book = (Element) document.getElementsByTagName("书").item(0);
// 把创建的节点放到第一本书上
document.getElementsByTagName("书").item(0).appendChild(price);
// 往book节点指定位置插值
book.insertBefore(price, refNode);
//*******************************************
// 向文档节点 添加属性
refNode.setAttribute("addAtrr", "new cha ru value");
//删除xml中的元素
// 得到要删除的节点
Element refNode = (Element) document.getElementsByTagName("售价").item(0);
refNode.getParentNode().removeChild(refNode);
Element refNode = (Element) document.getElementsByTagName("售价").item(0);
refNode.getParentNode().removeChild(refNode);
//删除属性
element.removeAttribute("xxx");
//更新xml
// 得到要更新的节点
Element refNode = (Element) document.getElementsByTagName("售价").item(0);
refNode.setTextContent("1000");
Element refNode = (Element) document.getElementsByTagName("售价").item(0);
refNode.setTextContent("1000");
//**************************************
以上的代码 更新xml删除xml 或者是添加xml都只是在内存中把Dom模型更新了 需要重新写回文件才可以
Transformer transformer = TransformerFactory.newInstance().newTransformer();
DOMSource source = new DOMSource(document);
FileOutputStream outstream = new FileOutputStream(new File("src/outbook2.xml"));
StreamResult reslut = new StreamResult(outstream);
transformer.transform(source, reslut);
DOMSource source = new DOMSource(document);
FileOutputStream outstream = new FileOutputStream(new File("src/outbook2.xml"));
StreamResult reslut = new StreamResult(outstream);
transformer.transform(source, reslut);
//用完输入流之后一定要关闭
outstream.close();
outstream.close();
- 使用JAXP Dom解析xml
- 【XML解析】使用Jaxp对XML进行DOM解析
- xml解析-jaxp-dom方式
- XML - JAXP技术 - DOM解析
- jaxp利用DOM解析XML
- 【XML】DOM—JAXP 解析
- jaxp解析器 使用DOM对象来解析XML
- 使用JAXP解析XML
- 使用JAXP对xml文档进行Dom解析
- 使用JAXP对xml文档进行Dom解析
- 使用JAXP的DOM方式解析XML文档(能力工场)
- 使用JAXP对XML文档进行DOM解析
- 使用jaxp对XML文件进行dom解析
- 使用JAXP进行DOM解析
- 使用jaxp进行dom解析
- 使用JAXP进行DOM解析
- 使用JAXP进行DOM解析
- 使用JAXP进行DOM解析
- 巴巴运动网-用泛型技术对产品分类的业务管理Bean抽象
- 股票投资指标分析
- C++读取unicode文本
- java 项目 jar 打包
- SQL查询本周本月的问题
- 使用JAXP Dom解析xml
- linux下lftp的常用方法
- 黑马程序员_JAVA中的二分查找(课堂笔记)
- java中equals和==的区别
- [算法实现]选择n次(n≥M), 能集齐M种卡片的概率是多大?
- 数据URL
- ubuntu中软件安装卸载和查看(转)
- 将自己的知识架构与发展画作一棵树,浇灌与培养
- cocos2d-x中使用多线程--pthread