`
jalja
  • 浏览: 6985 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论
  • g329741609: 有些公司看见这种什么达内啊的培训机构出来的学生就不给好脸色。
    求职经历
收藏列表
标题 标签 来源
XML
Document document=new SAXReader.reader(“xml文路径/文件名xxx.xml”);//得到Document对象
 
Element root = document.getRootElement()//获得根节点
 
Iterator iterator=root.elementIterator(); //从根节点遍历子节点
 
Iterator iterator=Element.elementIterator(); //再从子节点在遍历其子节点
 
对节点访问其属性用:Attribute leaderAttr =Element. attribute(“xxx”);
 
对节点访问其某个属性leaderAttr的名称:leaderAttr.getName();
对节点访问其某个属性leaderAttr的值:leaderAttr.getValue()
 
对节点访问其名称:Element.getName();
 
对节点访问其文本:Element. getText();

   attributeValue(QName qname):通过指定qualified name获得属性值,如果无法找到指定的属性,则返回null。 
attributeValue(QName qname, String defaultValue):通过指定qualified name获得属性值,如果无法找到指定的属性,则返回defaultValue。 
attributeValue(String name):通过指定local name获得属性值,而忽略属性的namespace,如果无法找到指定的属性,则返回null。 
attributeValue(String name, String defaultValue):通过指定local name获得属性值,而忽略属性的namespace,如果无法找到指定的属性,则返回defaultValue。

要解析的 XML
1.<?xml version="1.0" encoding="utf-8"?>  
2.<root>  
3.    <request type="Pending" flowType="GENERAL" flowName="报销流程"  
4.        docId="185647" flowId="16409" nodeName="报销人确认" wikId="58288"  
5.        sendId="1210040" userId="1210040" createDate="2009-12-03"  
6.        title="费用报销 " flowCreaterId="1210040" nodeType="1"  
7.        bosTime="2009-12-03 09:36:15">  
8.        <pro type="att"></pro>  
9.        <pro type="textarea" name="OP_bxryj" title="处理意见" need="true"></pro>  
10.    </request>  
11.</root>  


解析代码:
1.public void parseApplicationConfigXML(){  
2.    try {  
3.        SAXReader sax = new SAXReader();  
4.        Document xmlDoc = sax.read(new File("E:\\20090316HPS\\Dom4jTest\\t.xml"));  
5.        Element root = xmlDoc.getRootElement();//根节点  
6.        Iterator it = root.elementIterator("request");  
7.        while(it.hasNext()){  
8.            Element request = (Element)it.next();  
9.            System.out.println(request.getName());  
10.            System.out.println(request.attributeValue("type"));  
11.            System.out.println(request.attributeValue("flow"));  
12.            System.out.println(request.attributeValue("time"));  
13.              
14.        }  
15.        System.out.println("-------------------------------------------");  
16.        List list = root.selectNodes("//pro");  
17.        for(int i = 0; i < list.size(); i++){  
18.            Element pro = (Element)list.get(i);  
19.            System.out.println(pro.getName());  
20.            System.out.println(pro.attributeValue("type"));  
21.            System.out.println(pro.attributeValue("name"));  
22.            System.out.println(pro.getText());  
23.            System.out.println("+++++++++++++++++++++++++++++++++");  
24.        }  
25.    } catch (DocumentException e) {  
26.        // TODO Auto-generated catch block  
27.        e.printStackTrace();  
28.    }  
29.  }  


修改代码:


     public String getApplcationConfigFromXMLTest(){  
2.    String value = "";  
3.    try {  
4.        SAXReader sax = new SAXReader();  
5.        Document xmlDoc = sax.read(new File(this.UBSSDIC_PATH));  
6.        Element root = xmlDoc.getRootElement();//根节点  
7.        Iterator it = root.elementIterator();  
8.        while(it.hasNext()){  
9.            Element ele = (Element)it.next();  
10.            Attribute attribute = ele.attribute("type");  
11.            if(attribute.getStringValue().equals("Pending")){  
12.                attribute.setValue("sendread2");//修改属性节点的值  
13.            }  
14.  
15.            Attribute flowType = ele.attribute("flowType");  
16.            flowType.detach();//删除某个属性  
17.              
18.            ele.addAttribute("type", "Pending");//添加一个属性节点  
19.        }  
20.        Element new_cdata = root.addElement("new_cdata");//添加一个元素  
21.        new_cdata.addCDATA("tst&ree");  
22.          
23.        Element new_ele = root.addElement("new_ele");//添加一个元素  
24.        new_ele.addText("33434343");  
25.  
26.        Element obj = (Element)root.selectObject("//pro[@type='att']");//根据XPath查找元素  
27.        obj.setText("测试dddddd");//修改元素的值 即text节点  
28.             //输出全部原始数据,在编译器中显示  
29.           OutputFormat format = OutputFormat.createPrettyPrint();  
30.           format.setEncoding("GBK");  
31.           XMLWriter writer = new XMLWriter(System.out, format);  
32.           writer.write(xmlDoc);    
33.           writer.close();  
34.           // 输出全部原始数据,并用它生成新的我们需要的XML文件  
35.           XMLWriter writer2 = new XMLWriter(new FileWriter(new File(  
36.             "test.xml")), format);  
37.           writer2.write(xmlDoc); //输出到文件  
38.           writer2.close();  
39.    } catch (DocumentException e) {  
40.        System.out.println(e.getMessage());  
41.        e.printStackTrace();  
42.    }catch(IOException e){  
43.        e.printStackTrace();  
44.    }  
45.    return value ;  
46.}  
  
  生成XML:
     1.public void createApplicationConfigXML(){  
2.         //建立document对象  
3.         try {  
4.                 Document document = DocumentHelper.createDocument();  
5.                 Element root = document.addElement("root");//添加文档根  
6.                 root.addComment("这个一个注释");//加入一行注释  
7.                 Element request = root.addElement("request"); //添加root的子节点  
8.                 request.addAttribute("type", "cat");  
9.                 request.addAttribute("flow", "tong");  
10.                 request.addAttribute("time", "2009");  
11.                 Element pro = request.addElement("pro");  
12.                 pro.addAttribute("type", "att");  
13.                 pro.addAttribute("name", "附件");  
14.                 pro.addText("测试哈子");  
15.                   
16.                 Element cd = request.addElement("pro");  
17.                 cd.addAttribute("type", "cd");  
18.                 cd.addAttribute("name", "特殊字符过滤");  
19.                 cd.addCDATA("特殊字符");  
20.                   
21.                 //输出全部原始数据,在编译器中显示  
22.                 OutputFormat format = OutputFormat.createPrettyPrint();  
23.                 format.setEncoding("GBK");//根据需要设置编码  
24.                 XMLWriter writer = new XMLWriter(System.out, format);  
25.                 document.normalize();  
26.                 writer.write(document);    
27.                 writer.close();  
28.                 // 输出全部原始数据,并用它生成新的我们需要的XML文件  
29.                 XMLWriter writer2 = new XMLWriter(new FileWriter(new File(  
30.                 "test.xml")), format);  
31.                 writer2.write(document); //输出到文件  
32.                 writer2.close();  
33.        } catch (UnsupportedEncodingException e) {  
34.            // TODO Auto-generated catch block  
35.            e.printStackTrace();  
36.        } catch (IOException e) {  
37.            // TODO Auto-generated catch block  
38.            e.printStackTrace();  
39.        }  
40.    }  
Global site tag (gtag.js) - Google Analytics