免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2189 | 回复: 0
打印 上一主题 下一主题

dom4j操作XML代码DEMO篇 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-12-10 11:52 |只看该作者 |倒序浏览
DEMO1:结合XPath使用dom4j
注意要使用XPath必须要有jaxen-1.1-beta-6.jar 这个包的支持!要不然就报错!
XML的数据如下:
               
                    
                        0.8
                        1234
                        12
                    
               
修改的标签元素值0.8
代码如下:
public void modifyDocumet(File inputxml) {
        try {
            SAXReader saxReader = new SAXReader();
            Document document = saxReader.read(inputxml);
            List list = document.selectNodes("//sysinfo" );
            Iterator iter=list.iterator();
            while(iter.hasNext()){
                Element element=(Element)iter.next();
                Iterator iterator=element.elementIterator("cpu");
                while(iterator.hasNext()){
                    Element titleElement=(Element)iterator.next();
                    titleElement.setText("8.58");
                    System.out.println(titleElement.getText());
                }
            }
            //将doc中的内容写入文件中
            OutputFormat format = OutputFormat.createPrettyPrint();
            format.setEncoding("GBK");
            XMLWriter writer= new XMLWriter(new FileWriter(inputxml),format);
            writer.write(document);
            writer.flush();
        } catch (Exception e) {
            // TODO: handle exception
            System.out.println(e.toString());
        }
        
    }
调用:
File file = new File("c:/catalog/catalog.xml");
new XMLUtils().modifyDocumet(file);
DEMO2、XML的格式如下:

   
    8.58  
    1234  
    12
   
   
    15  
    200
   
解析的代码:
public void modifyDocument(File inputxml, String rootNode, String nodeName,String value) {
        try{
            SAXReader saxReader = new SAXReader();
            Document document   = saxReader.read(inputxml);
            List list           = document.selectNodes("root/" + rootNode);
            Iterator iter       = list.iterator();
            while (iter.hasNext()) {
                Element element  = (Element)iter.next();
                Iterator iterator= element.elementIterator(nodeName);
                Element currElement = (Element)iterator.next();
                currElement.setText(value);   
            }
            OutputFormat format = OutputFormat.createPrettyPrint();
            format.setEncoding("GBK");
            XMLWriter writer= new XMLWriter(new FileWriter(inputxml),format);
            writer.write(document);
            writer.flush();
        }catch (Exception e) {
            System.out.println(e.toString());
        }        
    }
如果是三级一样的可以递增进来的!
以上是修改元素值当然也可以修改元素的属性。也通过XPath方法操作 的!
整理如下:
DEMO3:修改元素的属性值
XML文件格式如下:
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/84280/showart_2116276.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP