1、生成XML
-----------------------------------------------------------------
下面是解析和修改XML
XML文件内容如下:
修改
解析
- @H_404_11@public@H_404_11@void@H_404_11@createApplicationConfigXML(){
- @H_404_11@//建立document对象 @H_404_11@
- @H_404_11@try@H_404_11@{
- @H_404_11@Documentdocument=DocumentHelper.createDocument();
- @H_404_11@Elementroot=document.addElement("root"@H_404_11@);//添加文档根 @H_404_11@
- @H_404_11@root.addComment("这个一个注释"@H_404_11@);//加入一行注释 @H_404_11@
- @H_404_11@Elementrequest=root.addElement("request"@H_404_11@);//添加root的子节点 @H_404_11@
- @H_404_11@request.addAttribute("type"@H_404_11@,"cat"@H_404_11@);
- @H_404_11@request.addAttribute("flow"@H_404_11@,"tong"@H_404_11@);
- @H_404_11@request.addAttribute("time"@H_404_11@,"2009"@H_404_11@);
- @H_404_11@Elementpro=request.addElement("pro"@H_404_11@);
- @H_404_11@pro.addAttribute("type"@H_404_11@,"att"@H_404_11@);
- @H_404_11@pro.addAttribute("name"@H_404_11@,"附件"@H_404_11@);
- @H_404_11@pro.addText("测试哈子"@H_404_11@);
- @H_404_11@
- @H_404_11@Elementcd=request.addElement("pro"@H_404_11@);
- @H_404_11@cd.addAttribute("type"@H_404_11@,"cd"@H_404_11@);
- @H_404_11@cd.addAttribute("name"@H_404_11@,"特殊字符过滤"@H_404_11@);
- @H_404_11@cd.addCDATA("特殊字符"@H_404_11@);
- @H_404_11@
- @H_404_11@//输出全部原始数据,在编译器中显示 @H_404_11@
- @H_404_11@OutputFormatformat=OutputFormat.createPrettyPrint();
- @H_404_11@format.setEncoding("GBK"@H_404_11@);//根据需要设置编码 @H_404_11@
- @H_404_11@XMLWriterwriter=new@H_404_11@XMLWriter(System.out,format);
- @H_404_11@document.normalize();
- @H_404_11@writer.write(document);
- @H_404_11@writer.close();
- @H_404_11@//输出全部原始数据,并用它生成新的我们需要的XML文件 @H_404_11@
- @H_404_11@XMLWriterwriter2=new@H_404_11@XMLWriter(new@H_404_11@FileWriter(new@H_404_11@File(
- @H_404_11@"test.xml"@H_404_11@)),format);
- @H_404_11@writer2.write(document);//输出到文件 @H_404_11@
- @H_404_11@writer2.close();
- @H_404_11@}catch@H_404_11@(UnsupportedEncodingExceptione){
- @H_404_11@//TODOAuto-generatedcatchblock @H_404_11@
- @H_404_11@e.printStackTrace();
- @H_404_11@}catch@H_404_11@(IOExceptione){
- @H_404_11@//TODOAuto-generatedcatchblock @H_404_11@
- @H_404_11@e.printStackTrace();
- @H_404_11@}
- @H_404_11@}
- public void createApplicationConfigXML(){
- //建立document对象
- try {
- Document document = DocumentHelper.createDocument();
- Element root = document.addElement("root");//添加文档根
- root.addComment("这个一个注释");//加入一行注释
- Element request = root.addElement("request"); //添加root的子节点
- request.addAttribute("type","cat");
- request.addAttribute("flow","tong");
- request.addAttribute("time","2009");
- Element pro = request.addElement("pro");
- pro.addAttribute("type","att");
- pro.addAttribute("name","附件");
- pro.addText("测试哈子");
- Element cd = request.addElement("pro");
- cd.addAttribute("type","cd");
- cd.addAttribute("name","特殊字符过滤");
- cd.addCDATA("特殊字符");
- //输出全部原始数据,在编译器中显示
- OutputFormat format = OutputFormat.createPrettyPrint();
- format.setEncoding("GBK");//根据需要设置编码
- XMLWriter writer = new XMLWriter(System.out,format);
- document.normalize();
- writer.write(document);
- writer.close();
- // 输出全部原始数据,并用它生成新的我们需要的XML文件
- XMLWriter writer2 = new XMLWriter(new FileWriter(new File(
- "test.xml")),format);
- writer2.write(document); //输出到文件
- writer2.close();
- } catch (UnsupportedEncodingException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
-----------------------------------------------------------------
下面是解析和修改XML
XML文件内容如下:
- @H_404_11@<?xml@H_404_11@version@H_404_11@="1.0"@H_404_11@encoding@H_404_11@="utf-8"?>@H_404_11@
- @H_404_11@<root>@H_404_11@
- @H_404_11@<request@H_404_11@type@H_404_11@="Pending"@H_404_11@flowType@H_404_11@="GENERAL"@H_404_11@flowName@H_404_11@="报销流程"@H_404_11@
- @H_404_11@docId@H_404_11@="185647"@H_404_11@flowId@H_404_11@="16409"@H_404_11@nodeName@H_404_11@="报销人确认"@H_404_11@wikId@H_404_11@="58288"@H_404_11@
- @H_404_11@sendId@H_404_11@="1210040"@H_404_11@userId@H_404_11@="1210040"@H_404_11@createDate@H_404_11@="2009-12-03"@H_404_11@
- @H_404_11@title@H_404_11@="费用报销"@H_404_11@flowCreaterId@H_404_11@="1210040"@H_404_11@nodeType@H_404_11@="1"@H_404_11@
- @H_404_11@bosTime@H_404_11@="2009-12-0309:36:15">@H_404_11@
- @H_404_11@<pro@H_404_11@type@H_404_11@="att"></pro>@H_404_11@
- @H_404_11@<pro@H_404_11@type@H_404_11@="textarea"@H_404_11@name@H_404_11@="OP_bxryj"@H_404_11@title@H_404_11@="处理意见"@H_404_11@need@H_404_11@="true"></pro>@H_404_11@
- @H_404_11@</request>@H_404_11@
- @H_404_11@</root>@H_404_11@
- <?xml version="1.0" encoding="utf-8"?>
- <root>
- <request type="Pending" flowType="GENERAL" flowName="报销流程"
- docId="185647" flowId="16409" nodeName="报销人确认" wikId="58288"
- sendId="1210040" userId="1210040" createDate="2009-12-03"
- title="费用报销 " flowCreaterId="1210040" nodeType="1"
- bosTime="2009-12-03 09:36:15">
- <pro type="att"></pro>
- <pro type="textarea" name="OP_bxryj" title="处理意见" need="true"></pro>
- </request>
- </root>
修改
- @H_404_11@public@H_404_11@StringgetApplcationConfigFromXMLTest(){
- @H_404_11@Stringvalue=""@H_404_11@;
- @H_404_11@try@H_404_11@{
- @H_404_11@SAXReadersax=new@H_404_11@SAXReader();
- @H_404_11@DocumentxmlDoc=sax.read(new@H_404_11@File(this@H_404_11@.UBSSDIC_PATH));
- @H_404_11@Elementroot=xmlDoc.getRootElement();//根节点 @H_404_11@
- @H_404_11@Iteratorit=root.elementIterator();
- @H_404_11@while@H_404_11@(it.hasNext()){
- @H_404_11@Elementele=(Element)it.next();
- @H_404_11@Attributeattribute=ele.attribute("type"@H_404_11@);
- @H_404_11@if@H_404_11@(attribute.getStringValue().equals("Pending"@H_404_11@)){
- @H_404_11@attribute.setValue("sendread2"@H_404_11@);//修改属性节点的值 @H_404_11@
- @H_404_11@}
- @H_404_11@
- @H_404_11@AttributeflowType=ele.attribute("flowType"@H_404_11@);
- @H_404_11@flowType.detach();//删除某个属性 @H_404_11@
- @H_404_11@
- @H_404_11@ele.addAttribute("type"@H_404_11@,"Pending"@H_404_11@);//添加一个属性节点 @H_404_11@
- @H_404_11@}
- @H_404_11@Elementnew_cdata=root.addElement("new_cdata"@H_404_11@);//添加一个元素 @H_404_11@
- @H_404_11@new_cdata.addCDATA("tst&ree"@H_404_11@);
- @H_404_11@
- @H_404_11@Elementnew_ele=root.addElement("new_ele"@H_404_11@);//添加一个元素 @H_404_11@
- @H_404_11@new_ele.addText("33434343"@H_404_11@);
- @H_404_11@
- @H_404_11@Elementobj=(Element)root.selectObject("//pro[@type='att']"@H_404_11@);//根据XPath查找元素
- @H_404_11@obj.setText("测试dddddd"@H_404_11@);//修改元素的值即text节点 @H_404_11@
- @H_404_11@//输出全部原始数据,在编译器中显示 @H_404_11@
- @H_404_11@OutputFormatformat=OutputFormat.createPrettyPrint();
- @H_404_11@format.setEncoding("GBK"@H_404_11@);
- @H_404_11@XMLWriterwriter=new@H_404_11@XMLWriter(System.out,format);
- @H_404_11@writer.write(xmlDoc);
- @H_404_11@writer.close();
- @H_404_11@//输出全部原始数据,并用它生成新的我们需要的XML文件 @H_404_11@
- @H_404_11@XMLWriterwriter2=new@H_404_11@XMLWriter(new@H_404_11@FileWriter(new@H_404_11@File(
- @H_404_11@"test.xml"@H_404_11@)),format);
- @H_404_11@writer2.write(xmlDoc);//输出到文件 @H_404_11@
- @H_404_11@writer2.close();
- @H_404_11@}catch@H_404_11@(DocumentExceptione){
- @H_404_11@System.out.println(e.getMessage());
- @H_404_11@e.printStackTrace();
- @H_404_11@}catch@H_404_11@(IOExceptione){
- @H_404_11@e.printStackTrace();
- @H_404_11@}
- @H_404_11@return@H_404_11@value;
- @H_404_11@}
- public String getApplcationConfigFromXMLTest(){
- String value = "";
- try {
- SAXReader sax = new SAXReader();
- Document xmlDoc = sax.read(new File(this.UBSSDIC_PATH));
- Element root = xmlDoc.getRootElement();//根节点
- Iterator it = root.elementIterator();
- while(it.hasNext()){
- Element ele = (Element)it.next();
- Attribute attribute = ele.attribute("type");
- if(attribute.getStringValue().equals("Pending")){
- attribute.setValue("sendread2");//修改属性节点的值
- }
- Attribute flowType = ele.attribute("flowType");
- flowType.detach();//删除某个属性
- ele.addAttribute("type","Pending");//添加一个属性节点
- }
- Element new_cdata = root.addElement("new_cdata");//添加一个元素
- new_cdata.addCDATA("tst&ree");
- Element new_ele = root.addElement("new_ele");//添加一个元素
- new_ele.addText("33434343");
- Element obj = (Element)root.selectObject("//pro[@type='att']");//根据XPath查找元素
- obj.setText("测试dddddd");//修改元素的值 即text节点
- //输出全部原始数据,在编译器中显示
- OutputFormat format = OutputFormat.createPrettyPrint();
- format.setEncoding("GBK");
- XMLWriter writer = new XMLWriter(System.out,format);
- writer.write(xmlDoc);
- writer.close();
- // 输出全部原始数据,并用它生成新的我们需要的XML文件
- XMLWriter writer2 = new XMLWriter(new FileWriter(new File(
- "test.xml")),format);
- writer2.write(xmlDoc); //输出到文件
- writer2.close();
- } catch (DocumentException e) {
- System.out.println(e.getMessage());
- e.printStackTrace();
- }catch(IOException e){
- e.printStackTrace();
- }
- return value ;
- }
解析
- @H_404_11@public@H_404_11@void@H_404_11@parseApplicationConfigXML(){
- @H_404_11@try@H_404_11@{
- @H_404_11@SAXReadersax=new@H_404_11@SAXReader();
- @H_404_11@DocumentxmlDoc=sax.read(new@H_404_11@File("E:\\20090316HPS\\Dom4jTest\\t.xml"@H_404_11@));
- @H_404_11@Elementroot=xmlDoc.getRootElement();//根节点 @H_404_11@
- @H_404_11@Iteratorit=root.elementIterator("request"@H_404_11@);
- @H_404_11@while@H_404_11@(it.hasNext()){
- @H_404_11@Elementrequest=(Element)it.next();
- @H_404_11@System.out.println(request.getName());
- @H_404_11@System.out.println(request.attributeValue("type"@H_404_11@));
- @H_404_11@System.out.println(request.attributeValue("flow"@H_404_11@));
- @H_404_11@System.out.println(request.attributeValue("time"@H_404_11@));
- @H_404_11@
- @H_404_11@}
- @H_404_11@System.out.println("-------------------------------------------"@H_404_11@);
- @H_404_11@Listlist=root.selectNodes("//pro"@H_404_11@);
- @H_404_11@for@H_404_11@(int@H_404_11@i=0@H_404_11@;i<list.size();i++){
- @H_404_11@Elementpro=(Element)list.get(i);
- @H_404_11@System.out.println(pro.getName());
- @H_404_11@System.out.println(pro.attributeValue("type"@H_404_11@));
- @H_404_11@System.out.println(pro.attributeValue("name"@H_404_11@));
- @H_404_11@System.out.println(pro.getText());
- @H_404_11@System.out.println("+++++++++++++++++++++++++++++++++"@H_404_11@);
- @H_404_11@}
- @H_404_11@}catch@H_404_11@(DocumentExceptione){
- @H_404_11@//TODOAuto-generatedcatchblock @H_404_11@
- @H_404_11@e.printStackTrace();
- @H_404_11@}