java dom4j text中包含子节点(dom4j如何取属性相同的各个节点,急,请高手帮忙,如何循环得到name的植)

:暂无数据 2026-07-04 08:20:07 1

java dom4j text中包含子节点(dom4j如何取属性相同的各个节点,急,请高手帮忙,如何循环得到name的植)

本篇文章给大家谈谈java dom4j text中包含子节点,以及dom4j如何取属性相同的各个节点,急,请高手帮忙,如何循环得到name的植对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录

dom4j如何取属性相同的各个节点,急,请高手帮忙,如何循环得到name的植

你的里面就没有属性我自己在下面三个节点加了点,xml文件要放在项目的根目录下
《result has="1"》0《/result》
《name has="2"》姓  名《/name》
《name has="3"》个人编号《/name》
下面这是代码:记得引入dom4j包
package thread;
import java.io.File;
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 msgXml {
public static void main(String args)
{
SAXReader read=new SAXReader();
File file=new File("msg.xml");
try
{
Document doc=read.read(file);
Element root=doc.getRootElement();
System.out.println("下面是name的值:");
//先得到body节点
for(Iterator it=root.elementIterator("body");it.hasNext();)
{
Element itt=(Element)it.next();
//再得到body下的name节点,再得到值
for(Iterator text=itt.elementIterator("name");text.hasNext();)
{
Element textt=(Element)text.next();
System.out.println(textt.getText());

}
System.out.println("属性都为has的节点:");
for(Iterator te=itt.elementIterator();te.hasNext();)
{
Element tex=(Element)te.next();

for(Iterator atn=tex.attributeIterator();atn.hasNext();)
{
Attribute attn=(Attribute)atn.next();
//属性相同的节点名

if(attn.getName().equals("has"))
{
System.out.println(tex.getName());
}
}
}
}
}catch(DocumentException e)
{
e.printStackTrace();
}
}
}

java中 用dom4j解析xml 子节点的问题

//private static void setResourceFilec() {
//
//SAXReader xmlReader = new SAXReader();
//try {
//Document doc = xmlReader.read(urlRes);
//
//Element myRoot = doc.getRootElement();
//List《Element》 persons = myRoot.elements("Resource");
//System.out.println(persons.size());
//for (int a = 0; a 《 persons.size(); a++) {
//Element onePerson = persons.get(a);
//Element oneName1 = onePerson.element("ResourceProperties");
//Element oneName2 = onePerson.element("ResourceProperty");
//Element oneName = onePerson.element("Name");
//
//oneName.addAttribute("MsgKey", "cheng");
//String oneNameValue = oneName.attributeValue("MsgKey");
//System.out.println("oneName=====》" + oneNameValue);
//
////oneName = onePerson.element("Description");
////oneName.addAttribute("MsgKey", "shangban");
////oneNameValue = oneName.attributeValue("MsgKey");
////System.out.println("oneName=====》" + oneNameValue);
//
//// 用于生成新的xml文件,覆盖原先文件
//OutputFormat xmlFormat = OutputFormat.createPrettyPrint();
//xmlFormat.setEncoding("utf-8");
//XMLWriter writer = new XMLWriter(new FileOutputStream(new File(
//urlRes)), xmlFormat);
//writer.write(doc);
//writer.close();
//}
//
//} catch (DocumentException e) {
//System.out.println(e.toString());
//e.printStackTrace();
//} catch (IOException e) {
//System.out.println(e.toString());
//e.printStackTrace();
//}
//}
需要doc4j jar包

dom4j的概念

DOM4J是dom4j.org出品的一个开源XML解析包,它的网站中这样定义:
Dom4j is an easy to use, open source library for working with XML, XPath and XSLT on the Java platform using the Java Collections Framework and with full support for DOM, SAX and JAXP.
Dom4j是一个易用的、开源的库,用于XML,XPath和XSLT。它应用于Java平台,采用了Java集合框架并完全支持DOM,SAX和JAXP。
DOM4J使用起来非常简单。只要你了解基本的XML-DOM模型,就能使用。然而他自己带的指南只有短短一页(html),不过说的到健全。国内的中文资料很少。因而俺写这个短小的教程方便大家使用,这篇文章仅谈及基本的用法,如需深入的使用,请……自己摸索或查找别的资料。
之前看过IBM developer社区的文章(参见附录),提到一些XML解析包的性能比较,其中DOM4J的性能非常出色,在多项测试中名列前茅。(事实上DOM4J的官方文档中也引用了这个比较)所以这次的项目中我采用了DOM4J作为XML解析工具。
在国内比较流行的是使用JDOM作为解析器,两者各擅其长,但DOM4J最大的特色是使用大量的接口,这也是它被认为比JDOM灵活的主要原因。大师不是说过么,“面向接口编程”。使用DOM4J的已经越来越多。如果你善于使用JDOM,不妨继续用下去,只看看本篇文章作为了解与比较,如果你正要采用一种解析器,不如就用DOM4J吧。
它的主要接口都在org.dom4j这个包里定义:
Attribute Attribute定义了XML的属性
Branch Branch为能够包含子节点的节点如XML元素(Element)和文档(Docuemnts)定义了一个公共的行为,
CDATA CDATA 定义了XML CDATA 区域
CharacterDataCharacterData是一个标识接口,标识基于字符的节点。如CDATA,Comment, Text.
Comment Comment 定义了XML注释的行为
Document 定义了XML文档
DocumentType DocumentType 定义XML DOCTYPE声明
Element Element定义XML 元素
ElementHandler ElementHandler定义了 Element 对象的处理器
ElementPath 被 ElementHandler 使用,用于取得当前正在处理的路径层次信息
Entity Entity定义 XML entity
Node Node为所有的dom4j中XML节点定义了多态行为
NodeFilter NodeFilter 定义了在dom4j节点中产生的一个滤镜或谓词的行为(predicate)
ProcessingInstruction ProcessingInstruction 定义 XML 处理指令.
Text Text 定义XML文本节点.
Visitor Visitor 用于实现Visitor模式.
XPath XPath 在分析一个字符串后会提供一个XPath表达式
看名字大致就知道它们的涵义如何了。
要想弄懂这套接口,关键的是要明白接口的继承关系:
interface java.lang.Cloneable
interface org.dom4j.Node
interface org.dom4j.Attribute
interface org.dom4j.Branch
interface org.dom4j.Document
interface org.dom4j.Element
interface org.dom4j.CharacterData
interface org.dom4j.CDATA
interface org.dom4j.Comment
interface org.dom4j.Text
interface org.dom4j.DocumentType
interface org.dom4j.Entity
interface org.dom4j.ProcessingInstruction
一目了然,很多事情都清楚了。大部分都是由Node继承来的。知道这些关系,将来写程序就不会出现ClassCastException了。

以上就是我们为大家找到的有关“java dom4j text中包含子节点(dom4j如何取属性相同的各个节点,急,请高手帮忙,如何循环得到name的植)”的所有内容了,希望可以帮助到你。如果对我们网站的其他内容感兴趣请持续关注本站。

java dom4j text中包含子节点(dom4j如何取属性相同的各个节点,急,请高手帮忙,如何循环得到name的植)

本文编辑:admin

更多文章:


全球新冠肺炎疫情背景下航运发展(盐田港复苏日志:半年历劫从“低谷”到“爆仓” 疫情之后巨轮如何越洋航行)

全球新冠肺炎疫情背景下航运发展(盐田港复苏日志:半年历劫从“低谷”到“爆仓” 疫情之后巨轮如何越洋航行)

大家好,关于全球新冠肺炎疫情背景下航运发展很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于盐田港复苏日志:半年历劫从“低谷”到“爆仓” 疫情之后巨轮如何越洋航行的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决

2026年9月7日 17:10

matlab求解带字母参数方程组(我想matlab求一个关于x,y的方程组 ab c d f e h m n 都是参数)

matlab求解带字母参数方程组(我想matlab求一个关于x,y的方程组 ab c d f e h m n 都是参数)

大家好,关于matlab求解带字母参数方程组很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于我想matlab求一个关于x,y的方程组 ab c d f e h m n 都是参数的知识点,相信应该可以解决大家的一些困惑和问题,

2026年9月7日 16:30

oracle中的循环语句(下面哪个不是oracle程序设计中的循环语句 a for)

oracle中的循环语句(下面哪个不是oracle程序设计中的循环语句 a for)

本篇文章给大家谈谈oracle中的循环语句,以及下面哪个不是oracle程序设计中的循环语句 a for对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

2026年9月7日 15:30

多表查询怎么做(Excel技巧:如何多表同步筛选)

多表查询怎么做(Excel技巧:如何多表同步筛选)

各位老铁们好,相信很多人对多表查询怎么做都不是特别的了解,因此呢,今天就来为大家分享下关于多表查询怎么做以及Excel技巧:如何多表同步筛选的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

2026年9月7日 15:10

服装店网站网页设计(服装网站建设目标设计要看甲方)

服装店网站网页设计(服装网站建设目标设计要看甲方)

“服装店网站网页设计”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看服装店网站网页设计(服装网站建设目标设计要看甲方)!

2026年9月7日 14:10

电脑里2个系统怎么删除一个(电脑开机显示有两个系统,如何删除一个)

电脑里2个系统怎么删除一个(电脑开机显示有两个系统,如何删除一个)

大家好,电脑里2个系统怎么删除一个相信很多的网友都不是很明白,包括电脑开机显示有两个系统,如何删除一个也是一样,不过没有关系,接下来就来为大家分享关于电脑里2个系统怎么删除一个和电脑开机显示有两个系统,如何删除一个的一些知识点,大家可以关注

2026年9月7日 12:20

苹果手机代码大全(恢复更新固件iOS未知错误代码解决大全)

苹果手机代码大全(恢复更新固件iOS未知错误代码解决大全)

大家好,今天小编来为大家解答以下的问题,关于苹果手机代码大全,恢复更新固件iOS未知错误代码解决大全这个很多人还不知道,现在让我们一起来看看吧!

2026年9月7日 10:20

scrollthrough意思(“scroll”是什么意思)

scrollthrough意思(“scroll”是什么意思)

今天给各位分享“scroll”是什么意思的知识,其中也会对“scroll”是什么意思进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年9月7日 08:00

怎么激活keygen(注册机如何激活cad2008一个简单激活cad2008的方法)

怎么激活keygen(注册机如何激活cad2008一个简单激活cad2008的方法)

本篇文章给大家谈谈怎么激活keygen,以及注册机如何激活cad2008一个简单激活cad2008的方法对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站

2026年9月7日 06:30

vba编写excel插件(excel vba中能否动态创建控件)

vba编写excel插件(excel vba中能否动态创建控件)

其实vba编写excel插件的问题并不复杂,但是又很多的朋友都不太了解excel vba中能否动态创建控件,因此呢,今天小编就来为大家分享vba编写excel插件的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年9月7日 04:40

最近更新

热门文章

dessert(dessert是什么意思)
2026-05-03 12:45:03 浏览:7
标签列表