<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    心遠(yuǎn)專欄

       :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      24 隨筆 :: 0 文章 :: 9 評論 :: 0 Trackbacks

    1.生成一個XML文件:

    public ? void ?generateDocument()? {
    ????????
    /**
    ?????????*?使用?DocumentHelper?類創(chuàng)建一個文檔實(shí)例。?
    ?????????*?DocumentHelper?是生成?XML?文檔節(jié)點(diǎn)的?dom4j?API?工廠類。
    ?????????
    */

    ????????Document?document?
    = ?DocumentHelper.createDocument();
    ????????
    /**
    ?????????*?使用?addElement()?方法創(chuàng)建根元素?catalog?。?
    ?????????*?addElement()?用于向?XML?文檔中增加元素。
    ?????????
    */

    ????????Element?catalogElement?
    = ?document.addElement( " catalog " );
    ????????
    /**
    ?????????*?在?catalog?元素中使用?addComment()?方法添加注釋“An?XML?catalog”。?
    ?????????
    */

    ????????catalogElement.addComment(
    " An?XML?catalog " );
    ????????
    /**
    ?????????*?在?catalog?元素中使用?addElement()?方法增加?journal?元素。
    ?????????
    */

    ????????Element?journalElement?
    = ?catalogElement.addElement( " journal " );
    ????????
    /**
    ?????????*?使用?addAttribute()?方法向?journal?元素添加?title?和?publisher?屬性。
    ?????????
    */

    ????????journalElement.addAttribute(
    " title " ,? " XML?Zone " );
    ????????journalElement.addAttribute(
    " publisher " ,? " IBM?developerWorks " );

    ????????
    /**
    ?????????*?向?article?元素中添加?journal?元素。?
    ?????????
    */

    ????????Element?articleElement?
    = ?journalElement.addElement( " article " );
    ????????
    /**
    ?????????*?為?article?元素增加?level?和?date?屬性。?
    ?????????
    */

    ????????articleElement.addAttribute(
    " level " ,? " Intermediate " );
    ????????articleElement.addAttribute(
    " date " ,? " December-2001 " );
    ????????
    /**
    ?????????*?向?article?元素中增加?title?元素。?
    ?????????
    */

    ????????Element?titleElement?
    = ?articleElement.addElement( " title " );
    ????????
    /**
    ?????????*?使用?setText()?方法設(shè)置?article?元素的文本。?
    ?????????
    */

    ????????titleElement.setText(
    " Java?configuration?with?XML?Schema " );
    ????????
    /**
    ?????????*?在?article?元素中增加?author?元素。?
    ?????????
    */

    ????????Element?authorElement?
    = ?articleElement.addElement( " author " );
    ????????
    /**
    ?????????*?在?author?元素中增加?firstname?元素并設(shè)置該元素的文本。?
    ?????????
    */

    ????????Element?firstNameElement?
    = ?authorElement.addElement( " firstname " );
    ????????firstNameElement.setText(
    " Macello " );
    ????????
    /**
    ?????????*?在?author?元素中增加?lastname?元素并設(shè)置該元素的文本。?
    ?????????
    */

    ????????Element?lastNameElement?
    = ?authorElement.addElement( " lastname " );
    ????????lastNameElement.setText(
    " Vitaletti " );

    ????????
    try ? {
    ????????????XMLWriter?output?
    = ? new ?XMLWriter( new ?FileWriter( new ?File(
    ????????????????????
    " demo/catalog.xml " )));
    ????????????output.write(document);
    ????????????output.close();
    ????????}
    ? catch ?(IOException?e)? {
    ????????????e.printStackTrace();
    ????????}

    }

    生成的XML文件如下所示:

    <? xml?version="1.0"?encoding="UTF-8" ?>
    < catalog >
    <!-- An?XML?catalog -->
    ????
    < journal? title ="XML?Zone" ?publisher ="IBM?developerWorks" >
    ????????
    < article? level ="Intermediate" ?date ="December-2001" >
    ????????????
    < title > Java?configuration?with?XML?Schema </ title >
    ????????????
    < author >
    ????????????????
    < firstname > Macello </ firstname >
    ????????????????
    < lastname > Vitaletti </ lastname >
    ????????????
    </ author >
    ????????
    </ article >
    ????
    </ journal >
    </ catalog >


    2.讀取該文件,輸出firstname和lastname:

    public ? void ?outPutInfo(String?filename) {
    ????????
    try ? {?
    ????????????File?f?
    = ? new ?File(filename);?
    ????????????SAXReader?reader?
    = ? new ?SAXReader();?
    ????????????Document?doc?
    = ?reader.read(f);?
    ????????????
    ????????????List?list?
    = ?doc.selectNodes( " //article " );
    ????????????Iterator?iter?
    = ?list.iterator();
    ????????????
    ????????????
    while ?(iter.hasNext())? {
    ????????????????Element?element?
    = ?(Element)?iter.next();
    ????????????????Element?nameElement?
    = ? null ;
    ????????????????Iterator?iterator?
    = ?element.elementIterator( " author " );
    ????????????????
    while ?(iterator.hasNext())? {
    ????????????????????nameElement?
    = ?(Element)?iterator.next();
    ????????????????????System.out.println(nameElement.elementText(
    " firstname " ));
    ????????????????????System.out.println(nameElement.elementText(
    " lastname " ));
    ????????????????}

    ????????????}

    ????????}
    ? catch ?(Exception?e)? {?
    ????????????e.printStackTrace();?
    ????????}
    ?
    ????}


    3.修改該文件;

    public ? void ?modifyDocument(String?filename)? {
    ????????
    try ? {
    ????????????File?inputXml?
    = ? new ?File(filename);
    ????????????
    ????????????SAXReader?saxReader?
    = ? new ?SAXReader();
    ????????????Document?document?
    = ?saxReader.read(inputXml);

    ????????????
    /**
    ?????????????*?inputXml?是從?catalog.xml?創(chuàng)建的?java.io.File。
    ?????????????*?使用?XPath?表達(dá)式從?article?元素中獲得?level?節(jié)點(diǎn)列表。
    ?????????????*?如果?level?屬性值是“Intermediate”則改為“Introductory”。?
    ?????????????
    */

    ????????????List?list?
    = ?document.selectNodes( " //article/@level " );
    ????????????Iterator?iter?
    = ?list.iterator();
    ????????????
    while ?(iter.hasNext())? {
    ????????????????Attribute?attribute?
    = ?(Attribute)?iter.next();
    ????????????????
    if ?(attribute.getValue().equals( " Intermediate " ))
    ????????????????????attribute.setValue(
    " Introductory " );
    ????????????}


    ????????????list?
    = ?document.selectNodes( " //article/@date " );
    ????????????iter?
    = ?list.iterator();
    ????????????
    while ?(iter.hasNext())? {
    ????????????????Attribute?attribute?
    = ?(Attribute)?iter.next();
    ????????????????
    if ?(attribute.getValue().equals( " December-2001 " ))
    ????????????????????attribute.setValue(
    " October-2002 " );

    ????????????}

    ????????????
    ????????????
    /**
    ?????????????*?獲取?article?元素列表,從?article?元素中的?title?元素得到一個迭代器,并修改?title?元素的文本。?
    ?????????????
    */

    ????????????list?
    = ?document.selectNodes( " //article " );
    ????????????iter?
    = ?list.iterator();
    ????????????
    while ?(iter.hasNext())? {
    ????????????????Element?element?
    = ?(Element)?iter.next();
    ????????????????Iterator?iterator?
    = ?element.elementIterator( " title " );
    ????????????????
    while ?(iterator.hasNext())? {
    ????????????????????Element?titleElement?
    = ?(Element)?iterator.next();
    ????????????????????
    if ?(titleElement.getText().equals(
    ????????????????????????????
    " Java?configuration?with?XML?Schema " ))
    ????????????????????????titleElement
    ????????????????????????????????.setText(
    " Create?flexible?and?extensible?XML?Schema " );

    ????????????????}

    ????????????}


    ????????????list?
    = ?document.selectNodes( " //article/author " );
    ????????????iter?
    = ?list.iterator();
    ????????????
    while ?(iter.hasNext())? {
    ????????????????Element?element?
    = ?(Element)?iter.next();
    ????????????????Iterator?iterator?
    = ?element.elementIterator( " firstname " );
    ????????????????
    while ?(iterator.hasNext())? {
    ????????????????????Element?firstNameElement?
    = ?(Element)?iterator.next();
    ????????????????????
    if ?(firstNameElement.getText().equals( " Marcello " ))
    ????????????????????????firstNameElement.setText(
    " Ayesha " );
    ????????????????}

    ????????????}


    ????????????list?
    = ?document.selectNodes( " //article/author " );
    ????????????iter?
    = ?list.iterator();
    ????????????
    while ?(iter.hasNext())? {
    ????????????????Element?element?
    = ?(Element)?iter.next();
    ????????????????Iterator?iterator?
    = ?element.elementIterator( " lastname " );
    ????????????????
    while ?(iterator.hasNext())? {
    ????????????????????Element?lastNameElement?
    = ?(Element)?iterator.next();
    ????????????????????
    if ?(lastNameElement.getText().equals( " Vitaletti " ))
    ????????????????????????lastNameElement.setText(
    " Malik " );

    ????????????????}


    ????????????}

    ????????????XMLWriter?output?
    = ? new ?XMLWriter( new ?FileWriter( new ?File(
    ????????????????????
    " catalog-modified.xml " )));
    ????????????output.write(document);
    ????????????output.close();
    ????????}
    ? catch ?(DocumentException?e)? {
    ????????????System.out.println(e.getMessage());
    ????????}
    ? catch ?(IOException?e)? {
    ????????????System.out.println(e.getMessage());
    ????????}

    ????}
    更新后的XML文件內(nèi)容如下所示:
    <?xml?version="1.0"?encoding="UTF-8"?>
    <catalog>
    <!--An?XML?catalog-->
    ????
    <journal?title="XML?Zone"?publisher="IBM?developerWorks">
    ????????
    <article?level="Introductory"?date="October-2002">
    ????????????
    <title>Create?flexible?and?extensible?XML?Schema</title>
    ????????????
    <author>
    ????????????????
    <firstname>Macello</firstname>
    ????????????????
    <lastname>Malik</lastname>
    ????????????
    </author>
    ????????
    </article>
    ????
    </journal>
    </catalog>

    posted on 2006-11-13 12:48 心遠(yuǎn) 閱讀(171) 評論(0)  編輯  收藏 所屬分類: java
    主站蜘蛛池模板: 丰满少妇作爱视频免费观看| 亚洲成人动漫在线| 高清国语自产拍免费视频国产| 在线观看永久免费| 最近高清中文字幕免费| 久久ww精品w免费人成| 67194成手机免费观看| 我们的2018在线观看免费高清| 日韩在线播放全免费| 99久久免费国产香蕉麻豆 | 亚洲综合激情另类小说区| 午夜亚洲AV日韩AV无码大全| 亚洲精品无码不卡| 亚洲电影在线免费观看| 亚洲av一本岛在线播放| 亚洲综合一区国产精品| 在线91精品亚洲网站精品成人| 高h视频在线免费观看| 久久久久久av无码免费看大片| 丝袜足液精子免费视频| 久久久国产精品福利免费| 色欲色香天天天综合网站免费 | 亚洲精品无码成人| 免费福利在线观看| 久久成人永久免费播放| 91福利视频免费观看| 成人无遮挡裸免费视频在线观看| 色吊丝最新永久免费观看网站| yy6080亚洲一级理论| 亚洲精品无码成人片久久| 亚洲国产一区在线| 亚洲а∨天堂久久精品9966| 人妻仑刮八A级毛片免费看| 在线涩涩免费观看国产精品| 日本免费网站视频www区| 精品免费久久久久久成人影院| 亚洲午夜精品第一区二区8050| 亚洲成人动漫在线| 国产精品亚洲av色欲三区| 三年片免费观看大全国语| 国产精品永久免费10000|