关键词不能为空

当前您在: 主页 > 英语 >

dom4j api 详解

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-28 05:06
tags:

-

2021年2月28日发(作者:纵横线)



1



DOM4J


简介



DOM4J




出品的一个开源


XML


解析包。< /p>


DOM4J


应用于


Java


平台,


采用了


Java


集合


框架并完全支持


DOM



SAX



JAXP




DOM4J


使用起来非常简单。只要你了解基本的


XML-DOM


模型,就能使用。



Dom


:把整个文档作为一个对象。



DOM4J


最大的特色是使用大量的接口。它的主要接口都在


4j


里面定义:



Attribute



Branch



CDATA



CharacterData



Comment



Document



DocumentType



Element



ElementHandler



ElementPath



Entity



Node



NodeFilter



ProcessingInstruction



Text



Visitor



XPath



接口之间的继承关系如下:



interface ble



interface 4j.


Node



interface ute



interface



interface nt



interface t



interface terData



interface



interface t



interface



interface ntType



定义了


XML


的属性。



指能够包含子节点的节点。 如


XML


元素


(Element)


和文档


(Docuemnts)


定义了一个 公共的行为



定义了


XML CDATA


区域



是一个标识接口, 标识基于字符的节点。如


CDATA



Comment, Text.



定义了


XML


注释的行为



定义了


XML


文档



定义


XML DOCTYPE


声明



定义


XML


元素



定义了


Element


对象的处理器




ElementHandler


使用,用于取得当前正在处理的路径层次信息



定义


XML entity




dom4j


中所有的


XML


节点定义了多态行为



定义了在


dom4j


节点中产生的一 个滤镜或谓词的行为(


predicate


< br>


定义


XML


处理指令



定义


XML


文本节点



用于实现


Visitor


模式



在分析一个字符串后会提供一个


XPath


表达式



interface



interface singInstruction



2< /p>



XML


文档操作


1



2.1


、读取

< br>XML


文档:




读写


XML


文档主要依赖于



包,有


DOMReader



SAXReader


两种方式。因为利用


了相同的接口,它们的调用方式是一样的。



public static Document load(String filename) {



Document document = null;



try {



SAXReader saxReader = new SAXReader();



document = saxReader


.


read


(new File(filename)); //


读取


XML


文件


,


获得


document


对象


} catch (Exception ex) {



tackTrace();



}



return document;



}





public static Document load(URL url) {



Document document = null;



try {



SAXReader saxReader = new SAXReader();



document = saxReader


.


read


(url); //


读取

< br>XML


文件


,


获得


document


对象



} catch (Exception ex) {



tackTrace();



}



return document;



}


< p>
//


读取指定的


xml


文 件之后返回一个


Document


对象,这个对象代表了整个< /p>


XML


文档,用于各种


Dom

< p>
运算。执照


XML


文件头所定义的编码来转换。< /p>



2.2


、获取根节点



根节点是


xml


分析的开始,任何

xml


分析工作都需要从根开始



Xml xml = new Xml();



Document dom = xml.


load


(path +



Element root = dom.


getRootEl ement


();



2.3



.


新增一个节点以及其下的子节点与数据



Element menuElement = ment(



Element engNameElement = ment(




ext(catNameEn);



Element chiNameElement = ment(



t(catName);



2.4




写 入


XML


文件



注意文件操作的包装类


是乱码的根源



public static boolean doc2XmlFile(Document document, String filename) {


boolean flag = true;


try {


XMLWriter writer = new XMLWriter( new OutputStreamWriter(new FileOutputStream(filen

< p>
ame),


(document);


();


} catch (Exception ex) {


flag = false;


tackTrace();


}


n(flag);


return flag;


}



Dom 4j


通过


XMLWriter



Document


对象表示的


XML


树写入指定的文件,并使用


OutputFormat

< br>格式对象指定写入的风格和编码方法。


调用


Pretty Print()


方法可以获得一个默认的


pretty pri nt


风格的格式对象。对


OutputFormat

< p>
对象调用


setEncoding()


方法可以指 定


XML


文件的编码方法。




public void writeTo(OutputStream out, String encoding) throws UnsupportedEncodingExc


eption, IOException {


OutputFormat format = PrettyPrint();


oding(


XMLWriter writer = new XMLWriter(,format);


(doc);


();


return;


}


2. 5


、遍历

< br>xml


节点



< /p>



Document


对象调用

< p>
getRootElement()


方法可以返回代表根节点的

< p>
Element


对象。拥有了一



Element


对象后,


可以对该对象调用

< p>
elementIterator()


方法获得它的子节点的


Element


对象们的一


个迭代器。使用


(Element)iterator


.next()

< br>方法遍历一个


iterator


并把每个取出的元素转化 为


Element


类型。



public boolean isOnly(String catNameEn,HttpServletRequest request,String xml) {


boolean flag = true;


String path = lPath(


Document doc = load(path+


Element root = tElement();


for (Iterator i = tIterator(); t();) {


Element el = (Element) ();


if((tTextTrim(


flag = false;


break;


}


}


return flag;


}


2. 6


、创建


xml


文件

< br>


public static void main(String args[]){



String fileName=



Document document= DocumentHelper


.


createDocumen t


();//


建立


document< /p>


对象,用来操作


xml


文件



Element booksElement=document.


addElement


(


建立根节点



booksElement.


addComm ent


(


加入一行注释



Element bookElement=booksElement.


addElement


(


添加一个

< br>book


节点



bookEle ment.


addAttribute


(


添加属性内容



Element titleElement =bookElement.


addElement


(


添加文本节点



titleElement.< /p>


setText


(


添加文本内容



try{



XMLWriter writer=new XMLWriter(new FileWriter(new File(fileName)));



writer


.write(document);



writer


.close();



}catch(Exception e){



tackTrace();



}



}



2.7


、修改节点属性



public



static



void


modifyXMLFile() {



String oldStr =



String newStr =



Document document =


null


;



//


修改节点的


属性



try


{



SAXReader saxReader =


new


SAXReader(); //

< br>用来读取


xml


文档



document = saxReader


.read(


new


File(oldStr)); //

< br>读取


xml


文档



List list = Nodes(


xpath


查找节点


book


的属 性



Iterator iter = or();



while


(iter


.hasNext()) {



Attribute attribute = (Attribute) iter


.next();



if


(ue().equals(



ue(



}



}


catch


(Exception e) {



tackTrace();



}



//


修改节点的


内容



try


{



SAXReader saxReader =


new


SAXReader(); //

< br>用来读取


xml


文档



document = saxReader


.read(


new


File(oldStr)); //

< br>读取


xml


文档



List list = Nodes(


xpath


查找节点


book


的内 容



Iterator iter = or();



while


(iter


.hasNext()) {



Element element = (Element) iter


.next();



t(


设置相应的内容



}



}


catch


(Exception e) {



tackTrace();



}





try


{



XMLWriter writer =


new


XMLWriter(


new


FileWriter(


new


File(newStr)));



writer


.write(document);



writer


.close();



}


catch


(Exception ex) {



tackTrace();



}



}



2.8


、删除节点



public



static



void


removeNode() {


-


-


-


-


-


-


-


-



本文更新与2021-02-28 05:06,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/678731.html

dom4j api 详解的相关文章

  • 余华爱情经典语录,余华爱情句子

    余华的经典语录——余华《第七天》40、我不怕死,一点都不怕,只怕再也不能看见你——余华《第七天》4可是我再也没遇到一个像福贵这样令我难忘的人了,对自己的经历如此清楚,

    语文
  • 心情低落的图片压抑,心情低落的图片发朋友圈

    心情压抑的图片(心太累没人理解的说说带图片)1、有时候很想找个人倾诉一下,却又不知从何说起,最终是什么也不说,只想快点睡过去,告诉自己,明天就好了。有时候,突然会觉得

    语文
  • 经典古训100句图片大全,古训名言警句

    古代经典励志名言100句译:好的药物味苦但对治病有利;忠言劝诫的话听起来不顺耳却对人的行为有利。3良言一句三冬暖,恶语伤人六月寒。喷泉的高度不会超过它的源头;一个人的事

    语文
  • 关于青春奋斗的名人名言鲁迅,关于青年奋斗的名言鲁迅

    鲁迅名言名句大全励志1、世上本没有路,走的人多了自然便成了路。下面是我整理的鲁迅先生的名言名句大全,希望对你有所帮助!当生存时,还是将遭践踏,将遭删刈,直至于死亡而

    语文
  • 三国群英单机版手游礼包码,三国群英手机单机版攻略

    三国群英传7五神兽洞有什么用那是多一个武将技能。青龙飞升召唤出东方的守护兽,神兽之一的青龙。玄武怒流召唤出北方的守护兽,神兽之一的玄武。白虎傲啸召唤出西方的守护兽,

    语文
  • 不收费的情感挽回专家电话,情感挽回免费咨询

    免费的情感挽回机构(揭秘情感挽回机构骗局)1、牛牛(化名)向上海市公安局金山分局报案,称自己为了挽回与女友的感情,被一家名为“实花教育咨询”的情感咨询机构诈骗4万余元。

    语文