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,这些字符串解析出来,谢谢各位 展开
<root>
<data>
<url>add</url>
<jdbc>localhost</jdbc>
<name>word</name>
<pwd>password</pwd>
</data>
</root>
这个XML,把add,localhost,word,password,这些字符串解析出来,谢谢各位 展开
3个回答
展开全部
/*
* 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转换成你需要的类型,就不写了。
* 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转换成你需要的类型,就不写了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
遍历方法通用,可以遍历属性和节点
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);
}
}
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);
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//下列代码,只读取 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);
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);
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询