XML解析之 对元素属性,节点,的增删改查
来源:互联网 发布:java基础代码题 编辑:程序博客网 时间:2024/05/16 02:00
小弟初学,希望老鸟们多多指点,感激不尽。
、<?xml version="1.0" encoding="UTF-8" standalone="no"?><水果 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="TestNameSpace.xsd"><苹果 id="update">苹果</苹果><香蕉>香蕉</香蕉><葡萄>update group</葡萄><李子>中文</李子></水果>
JAVA 解析文件:
package hr.csdn.com;import java.io.File;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerFactory;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.stream.StreamResult;import org.w3c.dom.Attr;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.Node;import org.w3c.dom.NodeList;public class Dome3 {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubDocumentBuilderFactory factor=DocumentBuilderFactory.newInstance();try {DocumentBuilder builder=factor.newDocumentBuilder();Document doc=builder.parse(new File("src/Test.xml"));find(doc);//查找findAtt(doc);//查找属性creatElement(doc);//添加节点removeElements(doc);updateElements(doc);updateAtt(doc);//修改属性addAtt(doc);//添加节点属性remove(doc);//删除节点属性} catch (Exception e) {e.printStackTrace();}}private static void remove(Document doc){Node bana=doc.getElementsByTagName("香蕉").item(0);if(bana.getNodeType()==Node.ELEMENT_NODE){Element emelent=(Element) bana;emelent.removeAttribute("id");TransformerFactory factor=TransformerFactory.newInstance();try {Transformer former=factor.newTransformer();//创建转换工厂former.transform(new DOMSource(doc),new StreamResult("src/Test.xml"));//将内存的内容} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}private static void addAtt(Document doc){Node banan=doc.getElementsByTagName("香蕉").item(0);if(banan.getNodeType()==Node.ELEMENT_NODE){Element element=(Element) banan;element.setAttribute("id","19");TransformerFactory factor=TransformerFactory.newInstance();try {Transformer former=factor.newTransformer();//创建转换工厂former.transform(new DOMSource(doc),new StreamResult("src/Test.xml"));//将内存的内容} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}private static void updateAtt(Document doc) {Node apple=doc.getElementsByTagName("苹果").item(0);if(apple.getNodeType()==Node.ELEMENT_NODE){Element element=(Element) apple;//element.getAttributeNode("id").setNodeValue("update apple");element.getAttributeNode("id").setValue("update");TransformerFactory factor=TransformerFactory.newInstance();try {Transformer former=factor.newTransformer();//创建转换工厂former.transform(new DOMSource(doc),new StreamResult("src/Test.xml"));//将内存的内容} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}private static void updateElements(Document doc) {Node group=doc.getElementsByTagName("葡萄").item(0);group.setTextContent("update group");TransformerFactory factor=TransformerFactory.newInstance();try {Transformer former=factor.newTransformer();//创建转换工厂former.transform(new DOMSource(doc),new StreamResult("src/Test.xml"));//将内存的内容} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}private static void removeElements(Document doc) {Node group=doc.getElementsByTagName("葡萄").item(0);group.getParentNode().removeChild(group);TransformerFactory factor=TransformerFactory.newInstance();try {Transformer former=factor.newTransformer();//创建转换工厂former.transform(new DOMSource(doc),new StreamResult("src/Test.xml"));//将内存的内容} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}private static void creatElement(Document doc) {NodeList shuiguos=doc.getElementsByTagName("水果");Node shuiguo=shuiguos.item(0);Node grap=doc.createElement("葡萄");//创建葡萄标签Node groupValue=doc.createTextNode("group");//创建葡萄标签中的内容grap.appendChild(groupValue);//将内容添加到标签shuiguo.appendChild(grap);//将葡萄添加到水果标签中shuiguo.insertBefore(grap, doc.getElementsByTagName("李子").item(0));TransformerFactory factor=TransformerFactory.newInstance();try {Transformer former=factor.newTransformer();//创建转换工厂former.transform(new DOMSource(doc),new StreamResult("src/Test.xml"));//将内存的内容} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}private static void findAtt(Document doc) {NodeList nodelist=doc.getElementsByTagName("苹果");Node node=nodelist.item(0);if(node.getNodeType()==Node.ELEMENT_NODE){Element element=(Element)node;String name=element.getAttribute("id");System.out.println(name);}}private static void find(Document doc) {NodeList nodelist=doc.getElementsByTagName("水果");Node node=nodelist.item(0);//获取第一个水果元素String value=node.getTextContent();System.out.println(value);}}
- XML解析之 对元素属性,节点,的增删改查
- JavaWeb_01_Dom4j操作节点元素和属性的增删改查
- java DOM 对xml文件的操作【分别对节点、节点属性、节点内容增删改查】
- c#对xml多属性节点的增删改操作
- JAXP对XML的DOM解析(增删改查)
- dom4j解析XML之【增删改查】
- JDOM对xml的增删改查之SAXBuilder
- c# 对Xml的增删改查
- c# 对Xml的增删改查
- java 对xml的增删改查
- c# 对Xml的增删改查
- Dom对XML的增删改查
- SimpleXML对XML的增删改查
- jaxp解析xml 对xml文件进行增删改查
- dom4j解析——增删改查元素、属性
- Android对复杂xml文件的增删改查节点操作
- xml的增删改查之SAXBuilder
- xml的增删改查之SAXBuilder
- uvalive 5026 树-直径
- POJ 1696
- EXTJS与java后台交互(一)DWR使用
- xml的删插改查
- Surface分析
- XML解析之 对元素属性,节点,的增删改查
- 十月18日
- GDB用法详解
- Zygote分析
- C/C++中const用法小结
- poj 3090 http://write.blog.csdn.net/postedit
- PL/SQL Developer 客户端连接oracle 11.2.0.1.0 服务器 配置步骤
- 在web工程下的web-inf目录下的classes目录中编写一个FirstServlet类,实现GenericServlet接口
- C与C++中的关键字