java xml 追加_java操作xml——添加、修改、删除、遍历

1 packagecom.xml.zh;2 import javax.xml.parsers.*;3 importjavax.xml.transform.Transformer;4 importjavax.xml.transform.TransformerConfigurationException;5 importjavax.xml.transform.TransformerFactory;6 importjavax.xml.transform.dom.DOMSource;7 importjavax.xml.transform.stream.StreamResult;8

9 import org.w3c.dom.*;10 public classXmlTest1{11

12 /**

13 * 使用dom技术对xml进行解析14 *@paramargs15 * 从这里我发现: Node 是 Element, document的父类, Element类主要是16 * 增加,删除,修改,返回 等。document 创建 xml中的对象17 * 例:document.getElementById();方法。18 */

19 public static void main(String[] args) throwsException{20 //TODO Auto-generated method stub21 //创建一个documentBuilderFactory实例

22 DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();23 //创建一个documentBuilder

24 DocumentBuilder db=dbf.newDocumentBuilder();25 //指定是那个xml文件

26 Document document = db.parse("src/class.xml");27 //list(document);28 //red(document);

29 update(document);30 upda(document);31 }32 //修改

33 public static voidupdate(Document doc){34 //修改元素内容

35 Element ele = (Element)doc.getElementsByTagName("mingzi").item(0);36 ele.setTextContent("xiaohai");37

38 //修改属性

39 Element element = (Element)doc.getElementsByTagName("xuesheng").item(0);40 element.setAttribute("sex", "nv");41 }42

43 //删除学生

44 public static voiddel(Document doc){45 Node node = doc.getElementsByTagName("xuesheng").item(0);46 //node.getParentNode().removeChild(node);47 //删除属性

48 Element ele =(Element)node;49 ele.removeAttribute("sex");50 }51

52 //添加学生到xml

53 public static voidadd(Document doc){54 //取出这个元素

55 Element element = doc.createElement("xuesheng");56

57 //添加属性

58 element.setAttribute("sex", "vc");59

60 Element element_name = doc.createElement("mingzi");61 element_name.setTextContent("xiaoming");62 Element element_nianling = doc.createElement("nianling");63 element_nianling.setTextContent("23");64 Element element_jieshao = doc.createElement("jieshao");65 element_jieshao.setTextContent("gi sh");66 element.appendChild(element_name);67 element.appendChild(element_nianling);68 element.appendChild(element_jieshao);69

70

71 //添加这个元素

72 doc.getDocumentElement().appendChild(element);73

74 }75 //更新java在xml文件中操作的内容

76 public static void upda(Document doc) throwsException{77 //创建一个TransformerFactory实例

78 TransformerFactory tff =TransformerFactory.newInstance();79 //通过TransformerFactory 得到一个转换器

80 Transformer tf =tff.newTransformer();81 //通过Transformer类的方法 transform(Source xmlSource, Result outputTarget)82 //将 XML Source 转换为 Result。

83 tf.transform(new DOMSource(doc), new StreamResult("src/class.xml"));84 }85

86 //遍历xml文件的元素

87 public static voidlist(Node node){88 if(node.getNodeType()==Node.ELEMENT_NODE)89 System.out.println(node.getNodeName());90 //得到该结点的子结点

91 NodeList nodelist =node.getChildNodes();92

93 for(int i=0;i

99 public static voidred(Document docu){100 NodeList nodelist = docu.getElementsByTagName("xuesheng");101 Element element = (Element)nodelist.item(0);102 System.out.println(element.getAttribute("sex"));103 System.out.println(element.getTextContent());104 }105 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值