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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);
//对子节点进行其它操作...
参考技术A 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解析xml重复节点

怎样获取xml中当前节点的直接孩子节点个数

java获取XML指定节点的全部子节点

java中如何写xml

收藏用--切勿转载JAVA 使用Dom4j 解析XML

java语句如何获取XML文件的节点值