高分求教java读取XML文档问题..

来源:百度知道 编辑:UC知道 时间:2024/05/15 05:33:15
本人想解析XML文档,属于新手..想用java解析文档中的数据..目前还没有什么头绪..主要是第一次做..希望高手给予一些点拨...谢谢了...
文档格式如下
<?xml version="1.0" encoding="UTF-8"?>
<Animation image="E:\Fengmo\Design300\Animation\c.png" version="4">
<Modules>
<Module h="30" w="31" x="0" y="0" />
<Module h="8" w="5" x="32" y="24" />
<Module h="8" w="5" x="38" y="24" />
<Module h="23" w="18" x="30" y="32" />
<Module h="24" w="17" x="31" y="0" />
<Module h="42" w="24" x="0" y="30" />
</Modules>
<Frames>
<Frame ab="0" al="0" ar="0" at="0" cb="31"

首先搞清楚解析XML的方法都有哪些:
1. Dom4J <使用接口和抽象基本类方法。大量使用了API中的Collections 类>
2. JDom <使用具体类。大量使用了API中的Collections类。自身不包含解析器,通常使用SAX2解析器来解析和验证输入XML文档>
3. SAX <类似于流媒体的优点。采用了基于事件的模型>
4. Dom <基于树或基于对象,树在内存中是持久>
给你Dom4J的例子:
private void parseUseDom4J() {
long startDT = System.currentTimeMillis();
try {
File file = new File(FILE_NAME_PATH);
SAXReader saxReader = new SAXReader();
Document docuemnt = saxReader.read(file);
Element root = docuemnt.getRootElement();
Element foo;
for (Iterator iterator = root.elementIterator("value"); iterator.hasNext();) {
foo = (Element) iterator.next();
System.out.println(foo.elementText(NAME_C));
System.out.println(foo.elementText(NAME_E));
System.out.println(foo.elementText(ADDRESS));