DOM解析XML文档(三)
example9.java
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
import javax.xml.transform.dom.*;
import org.w3c.dom.*;
import javax.xml.parsers.*;
import java.io.*;
public class Example9{
public static void main(String args[]){
try{
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document document=builder.parse(new File("Example9.xml"));
Element root=document.getDocumentElement();
NodeList nodeList=document.getElementsByTagName("名称");//获得交通工具节点集合
int size=nodeList.getLength();
for(int k=0;k<size;k++){
Node node=nodeList.item(k);
if(node.getNodeType()==Node.ELEMENT_NODE){
Element elementNode=(Element)node;
elementNode.removeAttribute("品牌");
}
}
nodeList=document.getElementsByTagName("价格");//获得交通工具节点集合
size=nodeList.getLength();
for(int k=0;k<size;k++){
Node node=nodeList.item(k);
if(node.getNodeType()==Node.ELEMENT_NODE){
Element elementNode=(Element)node;
elementNode.setAttribute("币种","人民币");
}
}
TransformerFactory transFactory=TransformerFactory.newInstance();
Transformer transformer=transFactory.newTransformer();
DOMSource domSource=new DOMSource(document);
File file=new File("Example9.xml");
FileOutputStream out=new FileOutputStream(file);
StreamResult xmlResult=new StreamResult(out);
transformer.transform(domSource,xmlResult);
}
catch(Exception e){
System.out.println(e);
e.printStackTrace();
}
}
}
example9
<?xml version="1.0" encoding="utf-8"?>
<交通工具列表>
<交通工具>
<名称 品牌="飞鸽">自行车</名称>
<价格>568元</价格>
</交通工具>
<交通工具>
<名称 品牌="奇瑞">轿车</名称>
<价格>23568元</价格>
</交通工具>
</交通工具列表>
example10.java
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
import javax.xml.transform.dom.*;
import org.w3c.dom.*;
import javax.xml.parsers.*;
import java.io.*;
public class Example10{
public static void main(String args[]){
try{
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document document=builder.parse(new File("Example10.xml"));
Element root=document.getDocumentElement();
NodeList nodeList=root.getElementsByTagName("图书名称");//获得书名的节点集合
int size=nodeList.getLength();
for(int k=0;k<size;k++){
Node node=nodeList.item(k);
if(node.getNodeType()==Node.ELEMENT_NODE){
Element elementNode=(Element)node;
String str=elementNode.getTextContent();
if(str.equals("")){
elementNode.setTextContent("Java经典案例");
}
if(str.equals("Java实践教程")){
elementNode.setTextContent("Ajax基础教程");
}
}
}
TransformerFactory transFactory=TransformerFactory.newInstance();
Transformer transformer=transFactory.newTransformer();
DOMSource domSource=new DOMSource(document);
File file=new File("Example10.xml");
FileOutputStream out=new FileOutputStream(file);
StreamResult xmlResult=new StreamResult(out);
transformer.transform(domSource,xmlResult);
}
catch(Exception e){
System.out.println(e);
}
}
}
example10
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<新书快递>
<图书名称>Ajax基础教程</图书名称>
<图书名称>Java经典案例</图书名称>
</新书快递>
example11.java
import org.w3c.dom.*;
import javax.xml.parsers.*;
import java.io.*;
public class Example11{
public static void main(String args[]){
try{
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document document=builder.parse(new File("Example11.xml"));
DocumentType doctype=document.getDoctype();
String DTDName=doctype.getName();
System.out.println("DTD的名字:" +DTDName);
String publicId=doctype.getPublicId();
System.out.println("PUBLIC的标识:" +publicId);
String systemId=doctype.getSystemId();
System.out.println("systemId的标识:" +systemId);
String internalDTD=doctype.getInternalSubset();
System.out.println("内部DTD:" +internalDTD);
}
catch(Exception e){
System.out.println(e);
}
}
}
example11
<?xml version="1.0" encoding="GB2312" standalone="yes"?>
<!DOCTYPE 员工[
<!ELEMENT 姓名 (#PCDATA)>
<!ELEMENT 性别 (#PCDATA)>
<!ELEMENT 出生日期 (#PCDATA)>
]>
<员工>
<姓名>王良</姓名>
<性别>男</性别>
<出生日期>1978-2-12</出生日期>
</员工>
example12.java
import org.w3c.dom.*;
import javax.xml.parsers.*;
import java.io.*;
public class Example12{
public static void main(String args[]){
try{
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document document=builder.parse(new File("Example12.xml"));
Element root=document.getDocumentElement();
String rooName=root.getNodeName();
System.out.println("XML文件根结点的名称为:"+rooName);
int sum=0;
NodeList nodelist=document.getElementsByTagName("顾客");
int size=nodelist.getLength();
for(int i=0;i<size;i++) {
Node node=nodelist.item(i);
String name=node.getNodeName();
if(node.getNodeType()==Node.ELEMENT_NODE){
Element ele=(Element)node;
NodeList nl=node.getChildNodes();
for(int k=0;k<nl.getLength();k++){
Node nd=nl.item(k);
String name1=nd.getNodeName();
String content=nd.getTextContent();
System.out.print(name1+content);
}
}
}
}
catch(Exception e){
System.out.println(e);
}
}
}
example12
<?xml version="1.0" encoding="utf-8" standalone="no"?><顾客清单>
<顾客>
<姓名>张耀文</姓名>
<消费金额>200元</消费金额>
<联系方式 工具="手机/固定电话/小灵通">13633826164</联系方式>
</顾客>
<顾客>
<姓名>李田田</姓名>
<消费金额>1123元</消费金额>
<联系方式 工具="手机/固定电话/小灵通">037168346572</联系方式>
</顾客>
</顾客清单>
example13.java
import org.w3c.dom.*;
import javax.xml.parsers.*;
import java.io.*;
public class Example13{
public static void main(String args[]){
try{
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document document=builder.parse(new File("Example12.xml"));
Element root=document.getDocumentElement();
String rooName=root.getNodeName();
System.out.println("XML文件根结点的名称为:"+rooName);
int sum=0;
NodeList nodelist=document.getElementsByTagName("消费金额");
int size=nodelist.getLength();
for(int i=0;i<size;i++){
Node node=nodelist.item(i);
String name=node.getNodeName();
String content=node.getTextContent();
sum=sum+Integer.parseInt(content.trim());
}
System.out.print("顾客的消费金额合计为:"+sum);
}
catch(Exception e){
System.out.println(e);
}
}
}
example14.java
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
import javax.xml.transform.dom.*;
import org.w3c.dom.*;
import javax.xml.parsers.*;
import java.io.*;
public class Example14{
public static void main(String args[]){
try{
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document document=builder.parse(new File("Example12.xml"));
Element root=document.getDocumentElement();
NodeList nodeList=document.getElementsByTagName("联系方式");//获得交通工具节点集合
int size=nodeList.getLength();
for(int k=0;k<size;k++){
Node node=nodeList.item(k);
if(node.getNodeType()==Node.ELEMENT_NODE){
Element elementNode=(Element)node;
elementNode.setAttribute("工具","手机/固定电话/小灵通");
}
}
TransformerFactory transFactory=TransformerFactory.newInstance();
Transformer transformer=transFactory.newTransformer();
DOMSource domSource=new DOMSource(document);
File file=new File("Example12.xml");
FileOutputStream out=new FileOutputStream(file);
StreamResult xmlResult=new StreamResult(out);
transformer.transform(domSource,xmlResult);
}
catch(Exception e){
System.out.println(e);
e.printStackTrace();
}
}
}
example15.java
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
import javax.xml.transform.dom.*;
import org.w3c.dom.*;
import javax.xml.parsers.*;
import java.io.*;
public class Example15{
public static void main(String args[]){
try{
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document document=builder.parse(new File("Example12.xml"));
Element root=document.getDocumentElement();
NodeList nodeList=root.getElementsByTagName("消费金额");//获得图书名称节点集合
int size=nodeList.getLength();
for(int k=0;k<size;k++){
Node node=nodeList.item(k);
if(node.getNodeType()==Node.ELEMENT_NODE){
Element ele=(Element)node;
Node ndl=ele.getFirstChild();
Text text=(Text)ndl;
text.appendData("元");
}
}
TransformerFactory transFactory=TransformerFactory.newInstance();
Transformer transformer=transFactory.newTransformer();
DOMSource domSource=new DOMSource(document);
File file=new File("Example12.xml");
FileOutputStream out=new FileOutputStream(file);
StreamResult xmlResult=new StreamResult(out);
transformer.transform(domSource,xmlResult);
}
catch(Exception e){
System.out.println(e);
}
}
}
example1
<?xml version="1.0" encoding="GB2312"?>
<学生信息表>
<!--this is an example-->
<学生>
<姓名>
<姓>刘</姓>
<名字>海松</名字>
</姓名>
<性别>男</性别>
<班级 学号="21">08211</班级>
<出生日期>
<日>24</日>
<月>11</月>
<年>1977</年>
</出生日期>
</学生>
<学生>
<姓名>
<姓>刘</姓>
<名字>红霞</名字>
</姓名>
<性别>女</性别>
<班级 学号="15">08211</班级>
<出生日期>
<日>17</日>
<月>10</月>
<年>1983</年>
</出生日期>
</学生>
</学生信息表>
SimpleResponse
<?xml version="1.0" encoding="GB2312"?>
<提示>
<被提示>刘红霞</被提示>
<提示者>刘海松</提示者>
<标题>周末</标题>
<内容>不用忘了去人民公园玩呀</内容>
</提示>
test.html
<html>
<body>
<script type="text/javascript">
if (window.ActiveXObject) { // 对IE浏览器
var doc=new ActiveXObject("Microsoft.XMLDOM");
doc.async="false";
doc.load("SimpleResponse.xml");
}
else {// 对Mozilla, Firefox, Opera等浏览器
var parser=new DOMParser();
var doc=parser.parseFromString("SimpleResponse.xml","text/xml");
}
var x=doc.documentElement;
for (i=0;i<x.childNodes.length;i++)
{
document.write(x.childNodes[i].nodeName);
document.write("=");
document.write(x.childNodes[i].childNodes[0].nodeValue);
document.write("<br />");
}
</script>
</body>
</html>
图书列表
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<图书列表>
<图书 ISBN="978-7-302-15488-4">
<名称>XML实践教程</名称>
<作者>王峰</作者>
</图书>
<图书 ISBN="7-302-12591-0">
<名称>JSP从入门到精通</名称>
<作者>刘海松</作者>
</图书>
<图书 ISBN="978-7-302-14337-6">
<名称>Java实践教程</名称>
<作者>李章帅</作者>
</图书>
</图书列表>