java中dom4j解析xml文件怎么获取节点属性

说详细点 最好有代码。

dom4j中,使用Element.attributes方法可以获取到节点的属性,而使用elements则可以获取相应的子节点
比如:
Element root = doc.getRootElement();
List attrList = root.attributes();
for (int i = 0; i < attrList.size(); i++) {
//属性的取得
Attribute item = (Attribute)attrList.get(i);
System.out.println(item.getName() + "=" + item.getValue());
}
List childList = root.elements();
for (int i = 0; i < childList.size(); i++) {
//子节点的操作
Element it = (Element) childList.get(i);
//对子节点进行其它操作...
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-01-03
java读取xml节点元素,主要使用java提供的解析xml的工具类SAXParserFactory,如下代码:package
xml.xmlreader;import
java.io.File;import
java.net.URL;import
java.util.Properties;import
javax.xml.parsers.SAXParser;import
javax.xml.parsers.SAXParserFactory;public
class
CFGParser
{//解析xml文件的工具类
private
Properties
props;
public
Properties
getProps()
{
return
props;
}
public
void
setProps(Properties
props)
{
this.props
=
props;
}
public
void
parse(String
filename)
throws
Exception
{
CFGHandler
handler
=
new
CFGHandler();
SAXParserFactory
factory
=
SAXParserFactory.newInstance();
factory.setNamespaceAware(false);
factory.setValidating(false);
SAXParser
parser
=
factory.newSAXParser();
URL
confURL
=
super.getClass().getClassLoader().getResource(filename);
if
(confURL
==
null)
{
System.out.println("Can't
find
configration
file.");
return;
}
try
{
parser.parse(confURL.toString(),
handler);
this.props
=
handler.getProps();
}
finally
{
factory
=
null;
parser
=
null;
handler
=
null;
}
}
public
void
parseFile(String
filename)
throws
Exception
{
CFGHandler
handler
=
new
CFGHandler();
SAXParserFactory
factory
=
SAXParserFactory.newInstance();
factory.setNamespaceAware(false);
factory.setValidating(false);
SAXParser
parser
=
factory.newSAXParser();
File
f
=
new
File(filename);
if
((f
==
null)
||
(!f.exists()))
return;
try
{
parser.parse(f,
handler);
this.props
=
handler.getProps();
}
finally
{
factory
=
null;
parser
=
null;
handler
=
null;
}
}}package
xml.xmlreader;import
java.util.Properties;import
org.xml.sax.Attributes;import
org.xml.sax.SAXException;import
org.xml.sax.helpers.DefaultHandler;public
class
CFGHandler
extends
DefaultHandler{
private
Properties
props;
private
String
currentSet;
private
String
currentName;
private
StringBuffer
currentValue
=
new
StringBuffer();
public
CFGHandler()
{
this.props
=
new
Properties();
}
public
Properties
getProps()
{
return
this.props;
}
public
void
startElement(String
uri,
String
localName,
String
qName,
Attributes
attributes)
throws
SAXException
{
this.currentValue.delete(0,
this.currentValue.length());
this.currentName
=
qName;
}
public
void
characters(char[]
ch,
int
start,
int
length)
throws
SAXException
{
this.currentValue.append(ch,
start,
length);
}
public
void
endElement(String
uri,
String
localName,
String
qName)
throws
SAXException
{
this.props.put(qName.toLowerCase(),
this.currentValue.toString().trim());
}}xml文件
6
10
23:00
12:00
18:00jsp获取各个节点的值:

java中dom4j解析xml文件怎么获取节点属性
dom4j中,使用Element.attributes方法可以获取到节点的属性,而使用elements则可以获取相应的子节点 比如:Element root = doc.getRootElement();List attrList = root.attributes();for (int i = 0; i < attrList.size(); i++) { \/\/属性的取得 Attribute item = (Attribute)attrList.get(i);...

用dom4j解析XML如何找到一个节点的子结点
int num=-1;\/\/遍历根结点(books)的所有孩子节点(book节点)for ( Iterator iter = root.elementIterator(); iter.hasNext(); ) { Element element = (Element) iter.next();num++;\/\/遍历book结点的所有孩子节点(即title...),并进行处理 for ( Iterator iterInner = element.elementIterator...

java 解析 xml字符串 取子节点数值
使用dom4j吧 大致的代码是:Document doc = DocumentHelper.parseText(sss);Element root = doc.getRoot();\/\/或许是doc.rootElement();,这里获取到的是process节点 Iterator<?> iter = root.elementIterator("task");\/\/这里是task节点的迭代器,因为有多个task,所以使用迭代器,如果是一个节点的话,...

java如何从一个xml文件读取根节点、子节点属性。
1> 有xml文件路径,获取该路径下的所有文件,用后缀“.xml”或“.XML”过滤得到xml文件。2> javax.xml.parsers.DocumentBuilder builder = factory.newDocumentBuilder();org.w3c.dom.Document doc = builder.parse(is); 创建文档对象。3>doc.getChildNodes()获取文档中所有的节点,循环遍历所得节点node...

怎样应用Dom4j对自动化生成的XML文件进行解析
是的,dom4j既可以解析xml文档,也可以创建xml文档。使用dom4j必须导入dom4j的jar包。以下是用dom4j来解析xml文件生成另一个xml文档的过程,我在这里只是将新生成的xml的文档打印,dom4j也可以新生成的xml的文档保存到磁盘。import java.io.File;import java.util.Iterator;import org.dom4j.Document;import ...

dom4j 解析xml 获取不到根节点
} } public static void main(String[] args){ xmlPrase(""); } \/\/xml文件 如下\/* <?xml version="1.0" encoding="UTF-8"?> <root> <brank>a<\/brank> <brank>b<\/brank> <brank>c<\/brank> <brank>d<\/brank> <brank>e<\/brank> <\/root>*\/} 获取根节点,System.out...

java 关于读取xml文件的问题
用dom4j dom4j 需要一个jar包 网上有下载 一搜很多的。1.读取XML文件,获得document对象。SAXReader reader = new SAXReader();Document document = reader.read(new File("input.xml"));2.解析XML形式的文本,得到document对象。String text = "<members><\/members>";Document document = ...

JAVA解析xml得到节点的值
import java.io.File;import java.util.Iterator;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.io.SAXReader;public class ParseXml {public static void main(String[] args) throws DocumentException {SAXReader reader = new SAXReader();Docum...

源码详解系列(三) --dom4j的使用和分析(重点对比和DOM、SAX的区别...
dom4j是用于读写XML的工具,其API相比JDK的JAXP更易用,在国内受到欢迎。本文将详细说明如何使用dom4j并分析其源码,同时对比DOM和SAX解析方法。DOM和SAX是读取XML节点的方法,DOM在内存中构建整个XML树,便于查找节点;SAX则是边读取边处理节点,不构建树,性能更高但不支持随机访问。DOM适合大型XML文件,...

dom4j解析无根节点的xml
public static void main(String[] args) { SAXReader saxReader = new SAXReader();Document document;try { document = saxReader.read(new File(Dom4jParse.class.getClass().getResource("\/").getFile().toString()+ "test.xml"));Element root = document.getRootElement();List list = new ...

相似回答