XML 文件的操作(三)

xiaoxiao2022-06-21  37

xml <?xml version="1.0" encoding="gb2312"?><?xml-stylesheet type="text/xsl" href="students.xsl"?><students> <student sn="01"> <name>张三</name> <age>18</age> </student> <student sn="02"> <name>李四</name> <age>20</age> </student></students> java程序: package com.ibm.xml;import java.io.File;import java.io.IOException;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.ParserConfigurationException;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerConfigurationException;import javax.xml.transform.TransformerException;import javax.xml.transform.TransformerFactory;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.stream.StreamResult;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.Node;import org.w3c.dom.NodeList;import org.w3c.dom.Text;import org.xml.sax.SAXException;/** * 对xml节点的添加、删除、修改 * @author Administrator * */public class DOMConvert { /** * @param args */ public static void main(String[] args) { DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance(); try { DocumentBuilder db=dbf.newDocumentBuilder(); Document doc=db.parse(new File("students.xml")); //添加新的元素 //创建元素节点 //创建根节点 Element eltStu=doc.createElement("student"); //创建子节点 Element eltName=doc.createElement("name"); Element eltAge=doc.createElement("age"); //创建文本节点 Text txtName=doc.createTextNode("王五"); Text txtAge=doc.createTextNode("19"); //元素节点添加文本节点内容 eltName.appendChild(txtName); eltAge.appendChild(txtAge); //根节点添加子节点 eltStu.appendChild(eltName); eltStu.appendChild(eltAge); //添加的属性 eltStu.setAttribute("sn","03"); //获取子节点 Element root=doc.getDocumentElement(); root.appendChild(eltStu); //删除节点(第一个节点) NodeList nl=root.getElementsByTagName("student"); root.removeChild(nl.item(0)); //修改节点(第一个节点,改成22) Element eltStuChg=(Element)nl.item(0); Node nodeAgeChg=eltStuChg.getElementsByTagName("age").item(0); nodeAgeChg.getFirstChild().setNodeValue("22"); int len=nl.getLength(); for(int i=0;i<len;i++) { Element elt=(Element)nl.item(i); System.out.println("编号: "+elt.getAttribute("sn")); Node nodeName=elt.getElementsByTagName("name").item(0); Node nodeAge=elt.getElementsByTagName("age").item(0); String name=nodeName.getFirstChild().getNodeValue(); String age=nodeAge.getFirstChild().getNodeValue(); System.out.println("姓名: "+name); System.out.println("年龄: "+age); System.out.println("-----------------------------"); } //复制xml内容写到其他的文件中 TransformerFactory tff=TransformerFactory.newInstance(); Transformer tf = tff.newTransformer(); tf.setOutputProperty("encoding","gb2312"); DOMSource source=new DOMSource(doc); StreamResult result=new StreamResult(new File("converted.xml")); tf.transform(source,result); }catch (ParserConfigurationException e) { // TODO 自动生成 catch 块 e.printStackTrace(); } catch (SAXException e) { // TODO 自动生成 catch 块 e.printStackTrace(); } catch (IOException e) { // TODO 自动生成 catch 块 e.printStackTrace(); } catch (TransformerConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (TransformerException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}
转载请注明原文地址: https://www.6miu.com/read-4950554.html

最新回复(0)