关键词不能为空

当前您在: 主页 > 英语 >

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文档的相关文章

  • 爱心与尊严的高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊严高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊重的作文题库

    1.作文关爱与尊重议论文 如果说没有爱就没有教育的话,那么离开了尊重同样也谈不上教育。 因为每一位孩子都渴望得到他人的尊重,尤其是教师的尊重。可是在现实生活中,不时会有

    小学作文
  • 爱心责任100字作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任心的作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文