JAVA里dom4j解析xml 5

<?xmlversion="1.0"encoding="UTF-8"?><root><data><url>add</url><jdbc>localhost</jdbc><... <?xml version="1.0" encoding="UTF-8"?>
<root>
<data>
<url>add</url>
<jdbc>localhost</jdbc>
<name>word</name>
<pwd>password</pwd>
</data>
</root>

这个XML,把add,localhost,word,password,这些字符串解析出来,谢谢各位
展开
 我来答
walicae
2011-05-24 · TA获得超过1845个赞
知道小有建树答主
回答量:1239
采纳率:0%
帮助的人:634万
展开全部
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.test;

import java.io.File;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.Iterator;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class Dom4jExample {
public static void main(String[] args) throws DocumentException, URISyntaxException {
URL urlfile = Dom4jExample.class.getResource("Config.xml");
File xml = new File(urlfile.toURI());
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(xml);
Element root = document.getRootElement(); //config
for ( Iterator iter = root.elementIterator(); iter.hasNext(); ) {
Element element = (Element) iter.next();
Attribute ageAttrIP=element.attribute("ip");
String ip = ageAttrIP.getValue();
System.out.println(ip);
Attribute ageAttrPORT=element.attribute("port");
String port = ageAttrPORT.getValue();
System.out.println(port);
}
}
}

找到之后,再把String转换成你需要的类型,就不写了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jaramy1111
推荐于2017-08-16 · TA获得超过348个赞
知道小有建树答主
回答量:382
采纳率:100%
帮助的人:93.6万
展开全部
遍历方法通用,可以遍历属性和节点
public void test() throws Exception{
//创建SAXReader对象
SAXReader reader = new SAXReader();
//读取文件 转换成Document
Document document = reader.read(new File("filepath.xml"));
//获取根节点元素对象
Element root = document.getRootElement();
//遍历
listNodes(root);
}

//遍历当前节点下的所有节点
public void listNodes(Element node){
System.out.println("当前节点的名称:" + node.getName());
//首先获取当前节点的所有属性节点
List<Attribute> list = node.attributes();
//遍历属性节点
for(Attribute attribute : list){
System.out.println("属性"+attribute.getName() +":" + attribute.getValue());
}
//如果当前节点内容不为空,则输出
if(!(node.getTextTrim().equals(""))){
System.out.println( node.getName() + ":" + node.getText());
}
//同时迭代当前节点下面的所有子节点
//使用递归
Iterator<Element> iterator = node.elementIterator();
while(iterator.hasNext()){
Element e = iterator.next();
listNodes(e);
}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
UF_NC
2011-05-22 · TA获得超过186个赞
知道小有建树答主
回答量:118
采纳率:0%
帮助的人:100万
展开全部
//下列代码,只读取 url标签内容
NodeList headNodes = dom.getElementsByTagName("url");
Node resultNode = headNodes.item(0);
Node textNode = resultNode.getFirstChild();
// add 变量就是读取url标签的内容 "add"字符串
String add =textNode.getNodeValue();
System.out.print(add);
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式