0 0

关于dom4j解析带属性的节点 获取节点值的问题!!!!!!!!!!20

                  <CustomList>
                        <Custom key="HolderName">测试</Custom>
                        <Custom key="save-holder">1</Custom>
                        <Custom key="HolderEmail">ceshi@ceshi.com</Custom>
                        <Custom key="HolderCardType">3</Custom>
                        <Custom key="HolderCardNo">asdasd</Custom>
                        <Custom key="HolderSex">1</Custom>
                        <Custom key="HolderMobile">13333333333</Custom>
                  </CustomList>

 xml格式是上面这种,请问我要怎么解析才能获取到----测试----等这些值,并且要对应存到表中,

例如:BIAO.setname();

           BIAO.setholder(); ... 这样对应存进去,改如何做 请各位猿指教啊!!!!!!!!!!!!!!!!

2014年7月25日 18:01

3个答案 按时间排序 按投票排序

0 0

电脑上没有dom4j的包

解析XML 没有必要非要用到dom4j
这个是可以满足你的要求的:

package cn.com.wangxiuwei.test;

import java.io.IOException;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

public class TestXml {

/**
* @param args
* @throws ParserConfigurationException
* @throws IOException
* @throws SAXException
* @throws IOException
* @throws ClassNotFoundException
*/
public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException{

DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
DocumentBuilder db=dbf.newDocumentBuilder();
Document d=db.parse("src/test.xml");
Node n=d.getChildNodes().item(0);
NodeList nl=n.getChildNodes();

for(int i=0;i<nl.getLength();i++){

if(!nl.item(i).getNodeName().equals("#text")){

Element e=(Element)nl.item(i);
System.out.println(nl.item(i).getNodeName()+"\t"+e.getAttribute("key")+"\t"+nl.item(i).getTextContent());

}

}

打印结果:

Custom HolderName 测试
Custom save-holder 1
Custom HolderEmail ceshi@ceshi.com
Custom HolderCardType 3
Custom HolderCardNo asdasd
Custom HolderSex 1
Custom HolderMobile 13333333333

看到打印就感觉你的这个xml是可以优化 这么多Custom标签其实就是一个Custom对象的每个属性而已 可以这样:

<Custom>
  <HolderName>测试</HolderName>   
  <save-holder>1</save-holder>
  <HolderEmail>ceshi@ceshi.com</HolderEmail>
  <HolderCardType>3</HolderCardType>
  <HolderCardNo>asdasd</HolderCardNo>
  <HolderSex>1</HolderSex>
  <HolderMobile>13333333333</HolderMobile>
  </Custom>
多一次遍历而已 但是他的好处就是读取时的字段是有规律的 没有必要判断

2014年7月26日 04:25
0 0

package com.lance;

import java.util.Iterator;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;

public class Dom4jSample {
	public static void main(String[] args) throws DocumentException {
		String xml = "<CustomList>" 
				+ "<Custom key='HolderName'>测试</Custom>"
				+ "<Custom key='save-holder'>1</Custom>"
				+ "<Custom key='HolderEmail'>ceshi@ceshi.com</Custom>"
				+ "<Custom key='HolderCardType'>3</Custom>"
				+ "<Custom key='HolderCardNo'>asdasd</Custom>"
				+ "<Custom key='HolderSex'>1</Custom>"
				+ "<Custom key='HolderMobile'>13333333333</Custom>"
				+ "</CustomList>";
		Document document = DocumentHelper.parseText(xml);
		Element nodeElement = document.getRootElement();
		List node = nodeElement.elements();

		for (Iterator it = node.iterator(); it.hasNext();) {
			Element el = (Element) it.next();
			System.out.println(el.attributeValue("key")+"::::::"+el.getText());
			
			/*if("HolderName".equals(el.attributeValue("key"))){
				biao.setname(el.getText());
			}*/
		}
	}
}

2014年7月25日 22:13
0 0

这里有写好的例子,你试试
http://suo.iteye.com/blog/1233458

2014年7月25日 18:15

相关推荐

    dom4j 解析(读取) xml 节点数据

    在本教程中,我们将深入探讨如何使用DOM4J解析(读取)XML节点数据,不受XML层级的限制。 首先,确保你已经下载了必要的依赖,即DOM4J库。通常,这将是一个名为`dom4j-x.x.x.jar`的文件,其中x.x.x是DOM4J的版本号...

    dom4j解析节点名称和值

    dom4j解析节点名称和值,放入一个string类型的xml字符串输出标签对应的名称以及值的map

    利用DOM4J解析SOAP的简单示例

    本篇文章将深入探讨如何利用DOM4J解析SOAP消息中的元素,以便在实际项目中进行有效的数据提取和操作。 首先,理解SOAP消息的结构至关重要。一个典型的SOAP消息如下所示: ```xml &lt;!-- Header元素中的内容 --&gt; ...

    dom4j解析xml详解

    ### DOM4J解析XML详解 #### 一、DOM4J简介与特性 DOM4J是一个由dom4j.org开发的开源XML解析包,专为Java平台设计,它不仅支持DOM、SAX和JAXP标准,还巧妙地融入了Java集合框架,使其成为Java开发者在处理XML数据时...

    dom4j 读取带有命名空间的xml文件

    在处理带有命名空间的XML文件时,DOM4J库显得尤为重要,因为XML命名空间是XML规范中一个关键的概念,用于避免元素名称的冲突。 XML命名空间的引入是为了在一个文档中使用来自不同来源的元素和属性。它们通过URI...

    dom4j解析xml文件的压缩包

    5. **事件驱动解析(SAX)**:除了传统的DOM解析外,DOM4J还支持SAX解析器,这种解析方式适用于处理大型XML文件,因为它不需要一次性加载整个文档到内存。 6. **Namespace支持**:DOM4J提供了对XML命名空间的全面...

    dom4j解析xml.txt

    ### DOM4J解析XML知识点详解 #### 一、DOM4J简介 DOM4J(Document Object Model for XML)是一款用于处理XML文档的轻量级Java库。它提供了一种非常简单且灵活的方式来创建、读取、修改和删除XML文档。DOM4J的主要...

    DOM4J解析XML代码

    4. 使用Iterator遍历根节点,获取每个student节点,再遍历student节点下的name、college、telephone等子节点,并通过相应的方法获取节点名称和值。 #### SAX解析XML文件 SAX解析方式是一种基于事件的解析方法。SAX...

    dom4j---xml解析jar包

    **DOM4J——XML解析库详解** XML(eXtensible Markup Language)作为一种标记语言,广泛应用于数据交换、配置文件和文档存储等领域。在Java环境中,解析XML文档时,我们通常会遇到各种库,其中DOM4J是一个非常流行...

    dom4j解析

    **DOM4J解析详解** DOM4J是一个Java库,它为处理XML提供了强大的功能,包括读取、写入、修改和操作XML文档。这个库在Java社区中广泛使用,因为它简单易用,性能优秀,且提供了丰富的API。本文将深入探讨DOM4J解析...

    DOM4J 解析XML

    **DOM4J解析XML** DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活、高效且功能丰富的API,使得XML的读取、创建、修改和查询变得简单易行。DOM4J的主要特点包括对XPath的支持、事件驱动的解析、以及与...

    java dom4j解析xml

    - DOM4J支持两种解析方式:DOM解析和SAX解析。DOM解析会一次性加载整个XML文档到内存,适合小规模的XML;SAX解析则采用事件驱动,逐行读取,适合处理大规模的XML文件。 - 解析XML的基本步骤:创建解析器工厂,通过...

    dom4j解析xml实例

    **DOM4J解析XML实例详解** 在Java编程中,处理XML文档是一项常见的任务。DOM4J是一个非常流行的、强大的Java XML API,它提供了灵活且高效的方式来解析、创建、修改XML文档。本文将深入探讨如何使用DOM4J进行XML...

    dom4j解析 递归

    **DOM4J解析递归详解** DOM4J是Java中一个强大的XML处理库,它提供了丰富的API用于XML的解析、创建、操作以及遍历。在处理复杂的XML文档时,经常需要用到递归方法来深入到XML的各个层级进行访问。本文将深入探讨DOM...

    Dom4j解析XML+使用简介

    **Dom4j解析XML+使用简介** Dom4j是一个非常流行的Java库,专门用于处理XML文档,它提供了灵活且高效的方式来解析、创建和操作XML内容。这个库在XML处理领域中备受推崇,因为它简单易用,同时又具有高度的灵活性和...

    dom4j常用方法

    dom4j常用方法 i.SAXReader sr = new SAXReader(); 生成解析器对象 ii.解析器对象.read(file对象); 解析文件生成Document对象 iii.文档对象.getRootElement() 获取跟元素节点 iv.元素节点.elements() 获取到指定...

    dom4j 解析xml实例

    在这个实例中,我们将深入探讨如何使用DOM4J解析XML文件,并通过`Dom4jTest1.java`这个示例程序来理解其工作原理。 首先,我们需要了解XML(Extensible Markup Language)是一种标记语言,常用于存储和传输数据。...

    DOM4J解析XML数据

    4. **修改XML**:DOM4J允许动态修改XML结构,例如添加新元素、删除元素、修改属性值等。这些操作完成后,通常需要使用`DocumentWriter`将修改后的`Document`对象写回XML文件。 5. **序列化XML**:将处理后的`...

Global site tag (gtag.js) - Google Analytics