利用dom方法解析xml文档,返回标签名和标签值的map集合
public class ModeXml {
private static DocumentBuilderFactory factory = null;
private static DocumentBuilder builder = null;
static{
factory = DocumentBuilderFactory.newInstance();
try {
builder = factory.newDocumentBuilder();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* xml解析
* @param xmlFilePath
* @return
*/
public static List<Map<String , String>> mode(String xmlFilePath){
try {
List<Map<String,String>> lists = new ArrayList<Map<String , String>>();
Map<String , String> map = null;
Document document = builder.parse(ModeXml.class.getClassLoader().getResourceAsStream(xmlFilePath));
document.normalize();
Element root = document.getDocumentElement();//获得根标签
NodeList childs = root.getChildNodes();
//遍历根标签下面的子标签
for (int i = 0 ; i < childs.getLength(); i++){
map = new HashMap<String , String>();
Node node=childs.item(i);
if(node.getNodeType() == Node.ELEMENT_NODE){
map = checkXml(node,map);
lists.add(map);
}
}
return lists;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
/**
* 获得标签下面的子标签
* @param node
* @param map
* @return
*/
private static Map<String , String> checkXml(Node node,Map<String, String> map){
if(node.hasChildNodes()){
if(node.getNodeType()==Node.ELEMENT_NODE){
NodeList lists = node.getChildNodes();
for(int i = 0 ;i < lists.getLength();i++){
Node ne = lists.item(i);
if(ne.getNodeType() == Node.ELEMENT_NODE){
if(ne.getChildNodes().getLength() > 1){
checkXml(ne,map);
continue;
}
String nodeName = ne.getNodeName();
String nodeValue = ne.getFirstChild().getNodeValue();
map.put(nodeName, nodeValue);
}
}
}
}
return map;
}
}
分享到:
相关推荐
在C#中,XML DOM解析器主要通过`System.Xml`命名空间中的类来实现,如`XmlDocument`、`XmlNode`等。下面我们将深入探讨这些知识点: 1. **XMLDocument类**:这是DOM解析的核心,它代表整个XML文档。你可以使用`Xml...
完整的Oracle xmldom解析xml入参,经过测试,可以解析,成功入到数据表中。
总结,IE下的XML DOM解析涉及使用ActiveXObject创建DOM对象,加载XML文件,然后通过DOM API遍历和操作XML结构。在ASP.NET Web环境中,通常需要结合服务器端和客户端代码协同工作,确保数据的正确传输和解析。理解并...
本文将详细讲解如何在Firefox下利用XML DOM解析XML文档。 首先,理解XML DOM的概念是至关重要的。XML DOM是一种W3C标准,它定义了一个统一的、平台和语言无关的接口,允许程序和脚本动态地访问和更新XML文档的结构...
XMLDOM提供了一种标准的方式来解析、修改和操作XML数据,它遵循W3C DOM规范。在这个示例中,我们将深入探讨如何在ASP中使用XMLDOM对象解析XML文件。 首先,我们需要了解XMLDOM的主要组成部分。XMLDOM主要包括以下几...
示例源码: ...什么是 XML DOM? XML DOM 是: 用于 XML 的标准对象模型 用于 XML 的标准编程接口 中立于平台和语言 W3C 标准 XML DOM 定义了所有 XML 元素...5、XMLDOM教程文档推荐参考:https://www.w3cschool.cn/xmldom
在这个主题中,“xmldom解析”主要涉及在服务器端和客户端使用DOM解析XML数据的技术。 1. **DOM解析原理**: - DOM解析器将XML文档转化为内存中的树形结构,称为DOM树。每个节点代表XML文档的一部分,如元素、属性...
这个“XML DOM解析方法手册”以中文CHM格式提供,旨在帮助开发者深入理解并有效地利用XML DOM进行编程。 在XML DOM中,每个XML元素、属性、文本节点等都有对应的对象,这些对象构成了一个树形结构,即DOM树。DOM...
DOM解析方式允许开发者一次性加载整个XML文档到内存中,形成一个树形结构,便于遍历和操作。尽管对于大型XML文件,DOM解析可能因消耗大量内存而效率低下,但在处理小型XML文件时,DOM方法具有简洁和方便的优点。 ...
DOM解析器将整个XML文档加载到内存中,形成一个树形结构,允许开发者通过节点操作来访问和修改XML内容。本篇文章将深入探讨Android中的DOM解析XML文件,包括其基本原理、实现步骤和一些实用技巧。 ### 1. DOM解析的...
xml的ppt文档,简要介绍dom解析器
在Java中,DOM解析主要通过`javax.xml.parsers`包中的`DocumentBuilderFactory`和`DocumentBuilder`类来实现。以下是一个简单的XML DOM解析实例: 首先,我们需要导入必要的库: ```java import javax.xml.parsers...
10. **性能优化**:处理大量XML数据时,要注意性能优化,例如,合理使用缓存,避免不必要的遍历操作,以及选择合适的解析方式(SAX或DOM)。 通过以上步骤和知识点,开发者能够在PowerBuilder环境中有效地读取、...
DOM解析会将整个XML文档加载到内存中形成一棵树形结构,方便访问任意节点,但内存消耗大;SAX解析则采用事件驱动,逐行读取XML,适合处理大型文档,但不支持随机访问。 三、DOM4J解析XML 1. 创建Document对象:使用...
下面我们将深入探讨DOM解析XML以及如何创建XML。 DOM解析XML的过程分为以下几个步骤: 1. **加载XML文档**:首先,我们需要通过DOM解析器加载XML文档。在JavaScript中,可以使用`DOMParser`对象的`parseFromString...
这个问题的出现主要是因为Egret引擎默认不包含XML解析的支持,因此需要额外引入XMLDOM库来解决。本文将深入探讨如何处理这个情况,以及XMLDOM在Egret中的应用。 XML(Extensible Markup Language)是一种用于存储和...
在这个例子中,我们将深入探讨如何使用DOM解析XML文件,以理解和掌握XML文档的结构,并进行数据提取、修改和创建。 首先,XML(Extensible Markup Language)是一种标记语言,用于存储和传输数据,具有自描述性和...
在C#中,System.Xml命名空间提供了XmlDocument类来实现DOM解析。以下是一个基础的XML DOM解析过程: 1. 加载XML文件:首先,我们需要加载XML文件到内存中。使用XmlDocument的Load方法可以完成这一操作。例如: ```...
标题“java_dom解析xml xml java”表明了本文档的主题是关于如何使用Java中的DOM技术来解析XML文件。 #### 描述分析 描述中提到这是一个适合新手入门的内容,并给出了一个简单的XML示例。该XML文档包含了一个`...