[30天轻松掌握JavaWeb视频]-dom解析xml的增删查改
来源:互联网 发布:老七mob淘宝店 编辑:程序博客网 时间:2024/06/05 08:51
书架.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?><书架><书><书名>钢铁是怎样炼成的</书名><作者>奥斯特洛夫斯基</作者><售价>69</售价></书><书><书名>呐喊</书名><作者>鲁迅</作者><售价>25</售价></书></书架>
代码
package DTD校验xml规范;import java.io.FileOutputStream;import java.io.IOException;import java.util.logging.StreamHandler;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.ParserConfigurationException;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerFactory;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.stream.StreamResult;import org.junit.Test;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.Node;import org.w3c.dom.NodeList;import org.xml.sax.SAXException;public class testJAXPcrud {/** * @param args * 用dom方式对xml进行CRUD *///得到指定元素内容//@Testpublic void readElemnt() throws Exception{DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();DocumentBuilder builder = factory.newDocumentBuilder();Document document= builder.parse("书架.xml");NodeList list = document.getElementsByTagName("书名");Node node = list.item(1);String content = node.getTextContent();System.out.println(content);}//得到所有标签//@Testpublic void readAllFlag() throws Exception{DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();DocumentBuilder builder = factory.newDocumentBuilder();Document document= builder.parse("书架.xml");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);}}//得到元素属性的值 <书名 name="xxx">钢铁是怎样炼成的</书名>//@Testpublic void readFlagAttribute() throws Exception{DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();DocumentBuilder builder = factory.newDocumentBuilder();Document document= builder.parse("书架.xml");Element bookname = (Element) document.getElementsByTagName("书名").item(0);String value = bookname.getAttribute("name");System.out.println(value);}//@Test//往指定标签下的指定位置插入子标签public void addAttribute() throws Exception{DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();DocumentBuilder builder = factory.newDocumentBuilder();Document document= builder.parse("书架.xml");//创建要插入的节点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);//把更新后内存里的内容写回xmlTransformerFactory tfactory = TransformerFactory.newInstance();Transformer tf = tfactory.newTransformer();tf.transform(new DOMSource(document), new StreamResult(new FileOutputStream("书架.xml")));}//@Test//往指定标签下插入属性 <书名 name="xxx">钢铁是怎样炼成的</书名>public void addFlagAttribute() throws Exception{DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();DocumentBuilder builder = factory.newDocumentBuilder();Document document= builder.parse("书架.xml");//得到要插入的标签Element element = (Element) document.getElementsByTagName("书名").item(0);element.setAttribute("name", "xxx");//把更新后内存里的内容写回xmlTransformerFactory tfactory = TransformerFactory.newInstance();Transformer tf = tfactory.newTransformer();tf.transform(new DOMSource(document), new StreamResult(new FileOutputStream("书架.xml")));}//@Test//删除标签public void deleteFlag() throws Exception{DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();DocumentBuilder builder = factory.newDocumentBuilder();Document document= builder.parse("书架.xml");//得到要删除的标签Element element = (Element) document.getElementsByTagName("售价").item(0);element.getParentNode().removeChild(element);//或者//得到要删除的标签的父标签//Element book = (Element) document.getElementsByTagName("书").item(0);//book.removeChild(element);//或者//element.removeAttribute("售价");//把更新后内存里的内容写回xmlTransformerFactory tfactory = TransformerFactory.newInstance();Transformer tf = tfactory.newTransformer();tf.transform(new DOMSource(document), new StreamResult(new FileOutputStream("书架.xml")));}//@Test//更新售价标签public void updateFlag() throws Exception{DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();DocumentBuilder builder = factory.newDocumentBuilder();Document document= builder.parse("书架.xml");//得到要更新的标签Element element = (Element) document.getElementsByTagName("售价").item(0);element.setTextContent("69");//把更新后内存里的内容写回xmlTransformerFactory tfactory = TransformerFactory.newInstance();Transformer tf = tfactory.newTransformer();tf.transform(new DOMSource(document), new StreamResult(new FileOutputStream("书架.xml")));}}
0 0
- [30天轻松掌握JavaWeb视频]-dom解析xml的增删查改
- 解析XML-DOM-增删改查
- DOM解析XML的增删改查实现
- JAXP对XML的DOM解析(增删改查)
- xml的增删改查,使用dom解析
- Dom对XML的增删改查
- [30天轻松掌握JavaWeb视频]-xml案例(考生成绩管理系统)
- java Dom 解析xml文档,实现xml文档结点的增删改查,遍历
- Dom 解析xml文档,实现xml文档结点的增删改查,遍历
- DOM解析轻松入门(二)--DOM实现增删改查
- DOM 进行XML操作的增删改查
- DOM对XML文档的增删改查
- DOM方式对xml文档的增删改查
- java(12)--xml之dom方式的增删改查
- xml文档,dom树的增删改查
- dom对xml增删改查
- php dom xml增删改查crud
- DOM 操作XML 增删改查
- android学习资料库
- ThinkPython摘录-Operators and operands
- Unity3D【火星大战一】
- mysql 中limit的用法
- Unity3D【火星大战二】
- [30天轻松掌握JavaWeb视频]-dom解析xml的增删查改
- [leetcode] Dungeon Game
- 《深入浅出程序设计》
- 一个不错的英语学习博客: http://www.eslbackpack.com/
- Redis学习小结
- 求二叉树的先序遍历
- Android Paint和Color类介绍
- ZOJ 2969 && BNU16488 Easy Task
- jQuery Mobile添加后退按钮