package src.dom;
import javax.xml.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;
import java.io.*;
public class DomUtil {
private static String XML = "dom.xml";
private StringBuffer sb = new StringBuffer();
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
}
//得到DOM树
public Document getDocument() throws Exception{
Document doc=null;
DocumentBuilder builder = null ;
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
try{
builder = docFactory.newDocumentBuilder();
}catch(ParserConfigurationException e){
}
InputStream is = DomUtil.class.getClassLoader().getResourceAsStream("src/dom/"+XML);
if(is==null){
throw new FileNotFoundException("找不到:"+XML);
}
doc = builder.parse(is);
doc.normalize();
return doc;
}
/**
* 访问标签名为TAGNAME的第一个节点
* @param doc
* @param tagName
* @return
*/
public Node visitFirstNode(Document doc,String tagName){
NodeList nodeL = doc.getElementsByTagName(tagName);
Node node=null;
if(nodeL!=null){
node = nodeL.item(0);
}
return node;
}
/**
* 遍历节点下的怕有子节点
* @param node
*/
public void searchAllElement(Node node){
if(node!=null){
sb.append("\n name:"+node.getNodeName()+" type:"+node.getNodeType());
if(node.hasChildNodes()){
NodeList nodeL = node.getChildNodes();
for(int i=0;i<nodeL.getLength();i++){
searchAllElement(nodeL.item(i));
}
}
}
}
/**
* 访问节点的属性
* @param node
*/
public void visitNode(Node node){
if(node!=null){
sb.append("\n name:"+node.getNodeName()+" type:"+node.getNodeType());
if(node.hasChildNodes()){
if(node.getFirstChild().getNodeType()==Node.TEXT_NODE){//节点有文本
sb.append(" text value:"+node.getFirstChild().getNodeValue());
}
}
if(node.hasAttributes()){//访问属性
NamedNodeMap map = node.getAttributes();
for(int index=0;index<map.getLength();index++){
Node att = map.item(index);
sb.append("\n================= name:"+att.getNodeName()+" value:"+att.getNodeValue());
//Attr att = (Attr)map.getNamedItem("type");
//sb.append(" att name:"+att.getName()+" value:"+att.getValue());
}
}
}
sb.append("node is null");
}
/**
* 访问节点相监的节点
* @param node
*/
public void visitBrotherNode(Node node){
Node preNode = node.getPreviousSibling();
if(preNode!=null){
visitNode(preNode);
}
Node nextNode = node.getNextSibling();
if(nextNode != null){
visitNode(nextNode);
}
}
/**
* 得到节点名称
* @param node
* @return
*/
public String getName(Node node){
return node.getNodeName();
}
/**
* 节点的文本内容
* @param node
* @return
*/
public String getText(Node node){
if(node.hasChildNodes()){
if(node.getFirstChild().getNodeType()==Node.TEXT_NODE){
return node.getFirstChild().getNodeValue();
}
}
if(node.getNodeType()==Node.TEXT_NODE){
return node.getNodeValue();
}
return null;
}
}
分享到:
相关推荐
DOM定义了一种标准,通过它可以以结构化的方式访问和操作XML文档。它将XML文档转换为一个节点树,其中每个节点代表XML文档的一部分。例如,XML文档中的每个元素是一个元素节点,文本内容是文本节点,属性是属性节点...
xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); } catch (e) { try { // Firefox, Mozilla, Opera, etc. xmlDoc = document.implementation.createDocument("", "", null); } catch (e) { alert(e.message)...
"XMLDOM教程·chm.chm" 这个文件很可能是关于XML DOM的一个详细教程,通常包含XML的基本语法、DOM的概念、DOM的API以及如何使用DOM解析和操作XML文档等内容。在这样的教程中,你可能会学到如何创建DOM对象、查找和...
XmlDom是Python中的一个强大的XML处理模块,它允许开发者通过DOM(Document Object Model)接口来操作XML文档。DOM是一种将XML文档转换为树型结构的模型,使得我们可以方便地对XML文档进行读取、修改和创建。 首先...
**Microsoft XML Document Object Model (XMLDOM)** XMLDOM是微软提供的一个接口,它允许程序员通过JavaScript、VBScript或其他...通过理解和掌握XMLDOM,开发者能够高效地操作XML文档,实现各种复杂的数据处理需求。
XML(eXtensible Markup Language)是一种用于标记数据的语言,常用于存储结构化信息。DOM(Document Object Model)...随着技术的发展,还有许多高级工具和库可以帮助简化XML操作,但掌握DOM的基础知识始终是必备的。
XML-DOM(Document Object...总之,XML-DOM是一种强大的工具,用于程序化地处理和操作XML数据。虽然其解析过程可能会占用大量内存,但对于需要频繁修改和访问XML内容的场景,DOM提供的便利性往往超过了其性能上的劣势。
在"XML解析之DOM"这一主题中,我们将深入探讨DOM解析器如何工作,以及如何通过DOM API获取XML文件中的信息。DOM解析器将整个XML文档加载到内存中,形成一个节点树,每个元素、属性、文本等内容都对应一个节点。这种...
标题中的"DOM_XML.rar"可能是一个包含DOM解析XML相关示例的压缩文件,"DOM_dom xml_dom xml java_dom解析xml_java解析xml"这部分描述了文件的主要内容,即关于DOM(Document Object Model)在XML解析中的应用,特别...
DOM4J的灵活性和易用性使其成为Java开发中处理XML的首选工具之一,无论是在Web应用、数据交换还是配置文件处理等场景中。通过熟练掌握DOM4J,开发者可以更高效地处理XML文档,提升项目开发效率。
JavaScript操作XML DOM对象是Web开发中的重要技能,尤其在处理数据交换、页面动态更新和跨平台通信时。本文将深入探讨这一主题,并结合JavaScript技巧,为开发者提供一个全面的指导。 1. **DOM(文档对象模型)基础...
1. **XML基础知识**:理解XML的基本结构,包括元素(Element)、属性(Attribute)、文本(Text)、注释(Comment)和处理指令(Processing Instruction)。XML文档以元素为核心,元素可以包含其他元素、文本或属性...
XML(eXtensible Markup Language)是一种用于存储和传输...通过学习和实践这个“XML的DOM编程实例”,开发者不仅能掌握DOM解析的基本原理,还能了解到如何在实际项目中结合GUI来操作XML数据,提升软件的交互性和功能。
在“Xml之DOM解析--学生成绩管理系统”中,我们主要探讨如何使用DOM解析器来读取、处理和更新XML文件,以实现一个简单的学生成绩管理系统的功能。首先,我们需要理解DOM解析的基本流程: 1. **加载XML文档**:使用...
DOM解析XML和创建XML是Web开发中的基础技能,尤其在处理动态数据和接口交互时,理解并掌握DOM与XML的结合应用至关重要。在实际项目中,我们可能还需要结合其他技术,如XSLT(用于转换XML)和XPath(用于在XML文档中...
DOM(Document Object Model)是W3C制定的一种标准,它为XML文档提供了一个树形结构,使得程序员可以方便地访问和操作XML文档的每一个元素。本教程将深入探讨Java中使用DOM模型解析XML文件的方法。 首先,我们需要...
DOM4J是Java中一个非常强大的XML处理库,它提供了丰富的API来操作XML文档,如读取、写入、修改以及查询XML。本教程将深入探讨XML DOM4J解析的相关知识点。 一、DOM4J基本概念 DOM4J是一种灵活的Java API,其设计...
XML(eXtensible Markup Language)是一种用于存储和传输数据的标记语言,它以其结构化、自解释性...对于初学者而言,理解并掌握这些基本操作对于处理XML文档至关重要,因为它们是许多系统和应用程序中数据交换的基础。
**XMLDOMDocument** 对象代表了XML DOM层次结构中的顶层节点,它是构建和操作XML结构的基础。通过以下命令可以创建一个XMLDOMDocument对象实例: ```vb Set objXMLDoc = CreateObject("Microsoft.XMLDOM") ``` ...
在IT行业中,XML(eXtensible Markup Language)是一种用于存储和传输数据的标准化格式,尤其在Web应用...在理解和掌握DOMParser的基础上,结合实际项目需求,我们可以有效地利用XML进行数据交换、配置管理等多种任务。