📄 domconvert.java
字号:
//演示XML文档数据的处理(增加,删除节点、修改数据)
import java.io.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;
import org.xml.sax.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;
class DOMConvert
{
public static void main(String[] args)
{
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
try
{
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new File("students.xml"));
//----添加元素节点
//创建元素节点
Element eleStu = doc.createElement("student");
Element eleName = doc.createElement("name");
Element eleAge = doc.createElement("age");
//创建文本节点
Text txtName = doc.createTextNode("王五");
Text txtAge = doc.createTextNode("19");
//将节点添加到其父节点中,形成节点树
eleName.appendChild(txtName);
eleAge.appendChild(txtAge);
eleStu.appendChild(eleName);
eleStu.appendChild(eleAge);
//设置元素节点的属性
eleStu.setAttribute("sn","03");
//将整个新创建的节点添加到根节点中
Element root = doc.getDocumentElement();
root.appendChild(eleStu);
//----删除元素节点
NodeList nl = root.getElementsByTagName("student");
root.removeChild(nl.item(0));
//----修改节点的值
Element eleStuChg = (Element)nl.item(0);
Node nodeAgeChg = eleStuChg.getElementsByTagName("age").item(0);
nodeAgeChg.getFirstChild().setNodeValue("32");
//打印输出节点信息
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 strName = nodeName.getFirstChild().getNodeValue();
String strAge = nodeAge.getFirstChild().getNodeValue();
System.out.println("姓名: " + strName);
System.out.println("年龄: " + strAge);
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(Throwable ex)
{
ex.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -