关键词不能为空

当前您在: 主页 > 英语 >

DOM4J文档

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

-

2021年2月28日发(作者:atak)



1



DOM4J


简介





DOM4J





出品的一个开源



XML


解析包。


DOM4J


应用于



Java


平台,采


用了



Java


集合框架并完全支持



DOM



SAX




JAXP





DOM4J


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



XML-DOM


模型,就能使用。




Dom


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





DOM4J

最大的特


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


4j


里面定义:



魂牵梦萦



魂牵梦萦



魂牵梦萦



Attribute


定义了



XML


的属性。



Branch

< p>
指能够包含子节点的节点。



XML


元素


(El


ement)


和 文



(Docue


mnts)



义了一


个公共


的行为



CDATA


定义了



XML CDATA


区域



CharacterData


是一个标识接口,


标识基于字符的节点。



CDATA



Comment,


Comment


Document


DocumentType


Element


ElementHandler


ElementPath


Entity


Node


NodeFilter


ProcessingInstruction


Text


Visitor


XPath


Text.


定义了



XML


注释的行为



定义了


XML


文档



定义



XML DOCTYPE


声明



定义


XML


元素



定义了


Element


对象的处理器





ElementHandler


使用,


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

< br>


定义



XML entity




dom4j


中所有的


XML


节点定义了多态行为

< p>


定义了在


dom4j


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


predicate


)< /p>



定义



XML


处理指令



定义



XML


文本节点



用于实现



Visitor


模式



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



XPath


表达式



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



interface ble



interface 4j.


Node






















interface ute


interface







interface nt


interface t


interface


interface t


interface


interface terData


interface ntType







interface


interface singInstruction


2< /p>



XML


文档操作


1


2.1


、读取


XML

< p>
文档:




读写


XML


文档主要依赖于



包,有


DOMReader



SAXR eader


两种方式。因为利


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



public static Document load(String filename) {


Document document = null;


try {


SAXReader saxReader = new SAXReader();


document = saxReader.


read


(new File(filename));



//

< br>读取


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);



//


读取


X ML


文件


,


获得


document


对象



} catch (Exception ex) {


tackTrace();


}


return document;


}


//


读取指定的

< br>xml


文件之后返回一个


Document


对象,这个对象代表了整个


XML


文档,用于各种< /p>


Dom


运算。


执照


XML


文件头所定义的编码来转换。



2.2


、获取根节点



根节点是


xml


分析的开始,任何

xml


分析工作都需要从根开始



Xml xml = new Xml();


Document dom = xml.


load


(path +


Element root = dom.


getRootElement


();


2.3



.


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



Element menuElement = ment(



Element engNameElement = ment(


t(catNameEn);


Element chiNameElement = ment(


t(catName);




2.4




写 入


XML


文件



注意文件操作的包装类


是乱码的根源



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


boolean flag = true;


try {


XMLWriter writer = new XML


Writer( new OutputStreamWriter(new F ileOutputStream(filename),


writer


.write(document);


();


} catch (Exception ex) {


flag = false;


tackTrace();


}


n(flag);


return flag;


}







Dom4j


通过


XMLWriter



Docu ment


对象表示的


XML



写入指定的文件,并使用


OutputFormat

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


调用


PrettyP rint()


方法可以获得一个默认的


pretty prin t


风格的格式对象。对


OutputFormat


对象调用


setEncoding()


方法可以指定


XML


文件的编码方法。




public void writeT


o(OutputStream out, String


e


ncoding) throws UnsupportedEncodingException, IOException {


OutputFormat format = OutputForm at.


createPrettyPrint


();


format.


setEncoding


(


XMLWriter writer = new XMLWriter(,format);


writer.


write


(doc);


();


return;


}


2. 5




遍历


x ml


节点







Doc ument


对象调用


getRootElement()


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


Element


对 象。



有了一个


Element


对象后,可以对该对象调用


elementIterator()


方法获得它的子节点的


Element


对象 们的一个迭代器。使用


(Element)iterator


. next()


方法遍历一个


iterator

< br>并把每个


取出的元素转化为


Element


类型。




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


boolean flag = true;


String path = lPath(


Document doc = load(path+


Element root = doc.


getRootElement


();


for (Iterator i = root.


elementIterator


(); t();) {


Element el = (Element) ();


if((tTextTrim(


flag = false;




break;


}


}


return flag;


}


2.6


、创建

xml


文件



public static void main(String args[]){


String fileName=


Document document=DocumentHelp er.


createDocument


();

< br>//


建立


document


对象 ,


用来操作


xml


文件



Element booksElement=document.


addElement


(


建立根节点

< p>


booksElement.


addComme nt


(


加入一行注释



Element bookElement=booksElement.


addElement


(


添加一个

< br>book


节点



bookEle ment.


addAttribute


(


添加属性内容



Element titleElement =bookElement.


addElement


(


添加文本节点



titleElement.< /p>


setT


ext


(


添加文本内容



try{


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



writer


.write(document);


();


}catch(Exception e){


tackTrace();


}


}


2.7


、修改节点属性



public



static



void


modifyXMLFile() {


String oldStr =



;


String newStr =



;


Document document =


null


;


//

修改节点的


属性



try


{


SAXReader saxReader =


new


SAXReader();


//


用来读取


xml


文档



document = (


new


File(oldStr));


//


读取


xml

文档



List list = Nodes(



);


//



xpath


查找节点


bo ok


的属性



Iterator iter = or();


while


(t()) {


Attribute attribute = (Attribute) ();


if


(ue().equals(



))




ue(



);


}


}


catch


(Exception e) {



tackTrace();


} < /p>


//


修改节点的


内容


try


{


SAXReader saxReader =


new


SAXReader();


//


用来读取


xml


文档



document = (


new


File(oldStr));


//


读取


xml

文档



List list = Nodes(



);


//



xpath


查找节点


bo ok


的内容



Iterator iter = or();


while


(t()) {


Element element = (Element) ();


t(



);


//


设置相应的内容



}


}


catch


(Exception e) {



tackTrace();


}



try


{


XMLWriter writer =


new


XMLWriter(


new


FileWriter(


new


File(newStr)));


(document);


();


}


catch


(Exception ex) {






}


}


tackTrace();


2.8


、删除节点



public



static



void


removeNode() {


String oldStr =



;


String newStr =



;


Document document =


null


;


try


{


SAXReader saxReader =


new


SAXReader();


//


用来读取

xml


文档



document = (


new


File(oldStr));


//


读取

xml


文档



List list = Nodes(



);


//



xpath


查找对象



Iterator iter = or();


while


(t()) {


Element bookElement = (Element) ();


//


创建迭代器,用来查找要删除的节点

,


迭代器相当于指针,指向


book


下所有的


title


节点



Iterator iterator = tIterator(



);


while


(t()) {


Element titleElement = (Element) ();



if


(t().equals(



)) {


(titleElement);


}


}


}


}


catch


(Exception e) {


tackTrace();


}


try


{


XMLWriter writer =


new


XMLWriter(


new


FileWriter(


new


File(newStr)));


(document);


();


}


catch


(Exception ex) {


tackTrace();


}


}



2



XML


文档操作


2


2.1

< br>、


Document


对象相关











1



读取


XML< /p>


文件


,


获得


do cument


对象


.















SAXReader reader = new SAXReader();









Document




document = reader.


read


(new File(








2



解析


XML


形式 的文本


,


得到


document


对象


.





















String text =





















Document document = DocumentHelper.


parseText


(text);








3


、主动创建


document


对象


.





















Document document = DocumentHelper.


createDocument


();





















Element root = document.


addElement


(

< br>创建根节点











2.2


、节点相关











1


、获取文档的根节点


.








Element rootElm = document.


getRootElement


();








2


、取得某节点的单个子节点


.








Element memberE lm=root.


element


(


是 节点名









3.


取得节点的文字









String text=memberElm.


getText


();







String text=root.


elementText


(


这个是取得根节点下的

< p>
name


字节点的文字


.









4.< /p>


取得某节点下指定名称的所有节点并进行遍历


.








List nodes = rootElm.


elements


(








for (Iterator it = or(); t();) {












Element elm = (Element) ();











// do something








}








5.< /p>


对某节点下的所有子节点进行遍历


.




















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

























Element element = (Element) ();
























// do something





















}








6.


在某节点下添加子节点


.








Element ageElm = newMemberElm.


addElement


(








7.


设置节点文字


.








ageElm.

< br>setText


(








8.


删除某节点


.








parentElm.

< p>
remove


(childElm);





// childElm


是待删除的节点


,parentElm


是其父节 点









9.< /p>


添加一个


CDATA


节点


.

















Element contentElm = infoElm.


addElement


(

















contentElm.


addCD ATA


(tent());















-


-


-


-


-


-


-


-



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

DOM4J文档的相关文章

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

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

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

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

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

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

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

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

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

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

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

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

    语文