共1页 | 上一页 1 下一页
/*这个程序完成的功能是读取company.xml文件的内容,然后
* 删除李四所对应的employee元素,再添加一个王五所对应的
* employee元素,最后再写入到XML文件中
*/
package coresun.cn;
import java.io.File;
import java.io.IOException;
import javax.xml.parsers.*;
import org.w3c.dom.*;
import org.xml.sax.SAXException;
import javax.xml.transform.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;
public class DOMEmployee2 {
public static void main(String[] args) {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
try {
DocumentBuilder db = factory.newDocumentBuilder();
//解析company.xml文件,并且获得文档节点
Document document = db.parse(new File("company.xml"));
//通过文档节点获得,获取根元素节点
Element root = document.getDocumentElement();
//获取employee节点的集合
NodeList nl = root.getElementsByTagName("employee");
root.removeChild(nl.item(1));
//创建元素节点
Element employeeElement = document.createElement("employee");
Element nameElement = document.createElement("name");
Element ageElement = document.createElement("age");
Element salaryElement = document.createElement("salary");
Element cashElement = document.createElement("cash");
//创建文本节点
Text cashText = document.createTextNode("2500");
Text ageText = document.createTextNode("23");
Text nameText = document.createTextNode("王五");
//添加子节点
cashElement.appendChild(cashText);
salaryElement.appendChild(cashElement);
ageElement.appendChild(ageText);
nameElement.appendChild(nameText);
employeeElement.appendChild(nameElement);
employeeElement.appendChild(ageElement);
employeeElement.appendChild(salaryElement);
root.appendChild(employeeElement);
//将DOM树中的内容转换到文件中,用到JAXP中的转换API javax.xml.transform包
//转换器的获得与解析器的获得比较类型,都是先获得工厂对象
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer tf = tFactory.newTransformer();
//设置输出文件的编码
tf.setOutputProperty("encoding", "gb2312");
//设置输出源
Source source = new DOMSource(document);
//设置输出结果
Result result = new StreamResult(new File("newCompany.xml"));
tf.transform(source, result);
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (TransformerConfigurationException e) {
e.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
}
}
}
* 删除李四所对应的employee元素,再添加一个王五所对应的
* employee元素,最后再写入到XML文件中
*/
package coresun.cn;
import java.io.File;
import java.io.IOException;
import javax.xml.parsers.*;
import org.w3c.dom.*;
import org.xml.sax.SAXException;
import javax.xml.transform.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;
public class DOMEmployee2 {
public static void main(String[] args) {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
try {
DocumentBuilder db = factory.newDocumentBuilder();
//解析company.xml文件,并且获得文档节点
Document document = db.parse(new File("company.xml"));
//通过文档节点获得,获取根元素节点
Element root = document.getDocumentElement();
//获取employee节点的集合
NodeList nl = root.getElementsByTagName("employee");
root.removeChild(nl.item(1));
//创建元素节点
Element employeeElement = document.createElement("employee");
Element nameElement = document.createElement("name");
Element ageElement = document.createElement("age");
Element salaryElement = document.createElement("salary");
Element cashElement = document.createElement("cash");
//创建文本节点
Text cashText = document.createTextNode("2500");
Text ageText = document.createTextNode("23");
Text nameText = document.createTextNode("王五");
//添加子节点
cashElement.appendChild(cashText);
salaryElement.appendChild(cashElement);
ageElement.appendChild(ageText);
nameElement.appendChild(nameText);
employeeElement.appendChild(nameElement);
employeeElement.appendChild(ageElement);
employeeElement.appendChild(salaryElement);
root.appendChild(employeeElement);
//将DOM树中的内容转换到文件中,用到JAXP中的转换API javax.xml.transform包
//转换器的获得与解析器的获得比较类型,都是先获得工厂对象
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer tf = tFactory.newTransformer();
//设置输出文件的编码
tf.setOutputProperty("encoding", "gb2312");
//设置输出源
Source source = new DOMSource(document);
//设置输出结果
Result result = new StreamResult(new File("newCompany.xml"));
tf.transform(source, result);
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (TransformerConfigurationException e) {
e.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
}
}
}
共1页 | 上一页 1 下一页



将DOM树转换为XML文件

coresun_szw
寻殇
