最近一直在纠结关于xml方面的知识,包括xml语法,分析xml的结构和语法:包括DTD 和schema的语法定义等.
特别是到了xml解析这部分,我们在面试的时候经常会被问到这样的问题.
下面的一个例子是关于DOM解析的:
package com.j2ee14.ch4;
import java.io.StringWriter;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import com.sun.org.apache.xml.internal.serialize.OutputFormat;
import com.sun.org.apache.xml.internal.serialize.XMLSerializer;
public class DOMStudy {
Document doc;
public static void main(String[] args) throws Exception {
DOMStudy domStudy=new DOMStudy();
domStudy.genDocInstance();
domStudy.genDocument();
domStudy.printDoc();
domStudy.modifyNode();
domStudy.printDoc();;
domStudy.removeNode();
domStudy.printDoc();
domStudy.replaceNode();
domStudy.printDoc();
domStudy.removeAttribute();
domStudy.printDoc();
}
private void genDocInstance(){
System.out.println("build a document instance...");
try{
DocumentBuilderFactory domFactory= DocumentBuilderFactory.newInstance();
domFactory.setValidating(false);
domFactory.setNamespaceAware(true);
DocumentBuilder domBuilder=domFactory.newDocumentBuilder();
domBuilder.setErrorHandler(new MyErrorHandler());
doc=domBuilder.newDocument();
}catch(Exception e){
e.printStackTrace();
}
}
private void genDocument(){
System.out.println("fill the content of the document.....");
Element root=doc.createElement("student");
root.setAttribute("id", "001");
Element item=doc.createElement("name");
item.appendChild(doc.createTextNode("jeff"));
root.appendChild(item);
item=doc.createElement("age");
item.appendChild(doc.createTextNode("24"));
root.appendChild(item);
item=doc.createElement("height");
item.appendChild(doc.createTextNode("1.70"));
root.appendChild(item);
item=doc.createElement("classId");
item.appendChild(doc.createTextNode("2010212160006"));
root.appendChild(item);
item=doc.createElement("address");
Element state=doc.createElement("state");
state.appendChild(doc.createTextNode("beijing"));
Element city=doc.createElement("city");
city.appendChild(doc.createTextNode("beijing"));
Element street=doc.createElement("street");
street.appendChild(doc.createTextNode("fuxing road"));
item.appendChild(state);
item.appendChild(city);
item.appendChild(street);
root.appendChild(item);
doc.appendChild(root);
}
private void printDoc()throws Exception{
System.out.println("====================");
System.out.println("print the document....");
OutputFormat outFormat=new OutputFormat(doc);
StringWriter stringout=new StringWriter();
XMLSerializer serial=new XMLSerializer(stringout,outFormat);
serial.asDOMSerializer();
serial.serialize(doc.getDocumentElement());
System.out.println("STRXML ="+stringout.toString());
}
private void modifyNode(){
System.out.println("modify the node value....");
Element root=doc.getDocumentElement();
Element name=(Element) root.getFirstChild();
name.getFirstChild().setNodeValue("hesihua");
}
private void removeNode(){
System.out.println("remove the node....");
Element root=doc.getDocumentElement();
root.removeChild(root.getFirstChild().getNextSibling());
}
private void replaceNode(){
System.out.println("replace a node.....");
Element root=doc.getDocumentElement();
Element item=doc.createElement("profession");
item.appendChild(doc.createTextNode("software"));
root.replaceChild(item, root.getFirstChild());
}
private void removeAttribute(){
System.out.println("remove a attribute");
Element root=doc.getDocumentElement();
root.removeAttribute("id");
}
}
上面的代码在运行后得到的结果如下:
build a document instance...
fill the content of the document.....
====================
print the document....
STRXML =<?xml version="1.0" encoding="UTF-8"?>
<student id="001"><name>jeff</name><age>24</age><height>1.70</height><classId>2010212160006</classId><address><state>beijing</state><city>beijing</city><street>fuxing road</street></address></student>
modify the node value....
====================
print the document....
STRXML =<?xml version="1.0" encoding="UTF-8"?>
<student id="001"><name>hesihua</name><age>24</age><height>1.70</height><classId>2010212160006</classId><address><state>beijing</state><city>beijing</city><street>fuxing road</street></address></student>
remove the node....
====================
print the document....
STRXML =<?xml version="1.0" encoding="UTF-8"?>
<student id="001"><name>hesihua</name><height>1.70</height><classId>2010212160006</classId><address><state>beijing</state><city>beijing</city><street>fuxing road</street></address></student>
replace a node.....
====================
print the document....
STRXML =<?xml version="1.0" encoding="UTF-8"?>
<student id="001"><profession>software</profession><height>1.70</height><classId>2010212160006</classId><address><state>beijing</state><city>beijing</city><street>fuxing road</street></address></student>
remove a attribute
====================
print the document....
STRXML =<?xml version="1.0" encoding="UTF-8"?>
<student><profession>software</profession><height>1.70</height><classId>2010212160006</classId><address><state>beijing</state><city>beijing</city><street>fuxing road</street></address></student>
真觉得DOM解析很强大...
分享到:
相关推荐
《JavaScript DOM编程艺术》是Jeremy Keith所著的一本关于JavaScript和DOM(文档对象模型)编程的经典图书,它不仅阐述了JavaScript和DOM的基本知识,还着重讲解了DOM编程技术背后的思路和原则。本书被赞誉为Web设计...
但是,根据标题《JavaScript DOM编程艺术【第2版&高清】.pdf》和描述“JavaScript DOM编程艺术,高清资源,无比经典,值得拥有”,我们可以推断这本书主要讲述了JavaScript中DOM(文档对象模型)的相关编程技术。...
javascript入门必备,本书讲述了JavaScript和DOM的基础知识,但重点放在DOM编程技术背后的思路和原则:预留退路、循序渐进和以用户为中心等,这些概念对于任何前端Web开发工作都非常重要。本书将这些概念贯穿在书中...
《JavaScript.DOM编程艺术(第2版)》是一本深入探讨JavaScript与DOM(Document Object Model)交互的权威书籍。DOM是Web开发中的核心组件,它允许程序员通过JavaScript来操作HTML和XML文档的结构、内容和样式。这本书...
根据提供的文件信息,我们可以推断出这是一本关于JavaScript DOM编程技术的书籍——《JavaScript DOM编程艺术(第2版)》。尽管实际书籍内容并未给出,但从标题、描述及部分链接信息来看,这本书主要涉及JavaScript...
JavaScript DOM编程艺术(第2版)是一本深受程序员喜爱的JavaScript技术书籍,专注于讲解如何使用JavaScript与Document Object Model(DOM)进行交互。DOM是Web页面的结构化表示,它允许我们通过编程方式操纵HTML和XML...
JavaScript DOM编程艺术是一本深入解析DOM操作的经典书籍,它的源码提供了丰富的实例,帮助开发者深入理解如何使用原生JavaScript高效地操纵网页元素。DOM(Document Object Model)是HTML和XML文档的标准表示,它将...
JavaScript DOM编程艺术第二版是一本深入探讨JavaScript与DOM(Document Object Model)交互的权威书籍,主要面向希望提升JavaScript客户端开发技能的程序员。DOM是Web页面的结构化表示,JavaScript通过DOM API可以...
JavaScript DOM编程艺术(第2版)是一本深受开发者欢迎的书籍,主要涵盖了JavaScript语言在Web前端开发中的应用,特别是关于DOM(Document Object Model)的深入理解和实践。这本书的随书光盘包含了源代码和PDF电子版...
《DOM编程艺术》是一本深入探讨Document Object Model(DOM)编程技术的专业书籍,结合源码一同提供,旨在帮助读者全面理解和掌握DOM相关的JavaScript技术。DOM是Web开发中的核心部分,它定义了HTML和XML文档的结构...
《JavaScript.DOM编程艺术》是JavaScript开发者必读的经典之作,它深入浅出地介绍了如何使用JavaScript操作DOM(Document Object Model)来构建动态、交互式的Web页面。第二版更是对第一版的内容进行了更新和完善,...
《JavaScript DOM编程艺术:第2版》讲述了JavaScript、DOM 和HTML5 的基础知识,着重介绍DOM 编程技术背后的思路和原则:平稳退化、渐进增强和以用户...《JavaScript DOM编程艺术:第2版》适合Web 设计师和开发人员阅读。
本书讲述了JavaScript和DOM的基础知识,但重点放在DOM编程技术背后的思路和原则:预留退路、循序渐进和以用户为中心等,这些概念对于任何前端Web开发工作都非常重要。本书将这些概念贯穿在书中的所有代码示例中,使...
JavaScript DOM编程艺术是一本深入探讨如何使用JavaScript操作和操纵网页文档对象模型(Document Object Model)的经典书籍。DOM是HTML和XML文档的一种结构化表示,它允许我们通过编程方式访问和修改网页内容。这...
JavaScript-DOM编程艺术是关于如何使用JavaScript操作网页文档对象模型(Document Object Model,简称DOM)的技术。DOM是一种标准,它提供了表示和操作HTML或XML文档的接口。通过DOM,JavaScript可以访问和修改网页...
《javascript dom编程艺术:第2版》讲述了javascript、dom 和html5 的基础知识,着重介绍dom 编程技术背后的思路和原则:平稳退化、渐进增强和以... 《javascript dom编程艺术:第2版》适合web 设计师和开发人员阅读。
《JavaScript+DOM编程艺术》是一本专为网页前端工程师打造的入门级图书,也是网页设计者不可或缺的参考资料。这本书深入浅出地介绍了JavaScript语言及其在DOM(Document Object Model)操作中的应用,帮助读者掌握...
《DOM编程艺术》是一本深入探讨Document Object Model(DOM)的权威著作,它详细阐述了如何使用DOM进行网页和Web应用程序的动态编程。DOM是HTML和XML文档的标准表示,允许程序和脚本通过编程方式访问和操作网页内容...
《javascript dom编程艺术:第2版》讲述了javascript、dom 和html5 的基础知识,着重介绍dom 编程技术背后的思路和原则:平稳退化、渐进增强和以用户...《javascript dom编程艺术:第2版》适合web 设计师和开发人员阅读。
《JavaScript DOM编程艺术 第2版》是一本深入探讨JavaScript与DOM(Document Object Model)交互的权威书籍。DOM作为Web页面的结构模型,是JavaScript进行页面动态操作的核心工具。这本书全面覆盖了利用JavaScript来...