import javax.xml.parsers.*; import java.util.*; import java.io.*; import org.jdom.Document; import org.jdom.Element; import org.jdom.input.SAXBuilder; import org.jdom.output.XMLOutputter; public class CreateXML {   DocumentBuilderFactory factory=null;     DocumentBuilder builder=null;     org.w3c.dom.Document myDocument = null;   //创建XML文件    //要创建的XML名字和路进  public void ctrateXMlFile(String file){   Element carElement = new Element("web-app");//建立元素   Document myDocument = new Document(carElement);//建立一个文档并指定根元素   try {       XMLOutputter outputter = new XMLOutputter();       outputter.output(myDocument, System.out);       FileWriter writer = new FileWriter(file);       outputter.output(myDocument, writer);       writer.close();   } catch (java.io.IOException e) {       e.printStackTrace();   }  }  //增加节点    //第1个参数:要增加节点的名字,第2个参数:要修改xml的路进名  public void addXMLNode(String nodeName,String xmlFile){          try {      Element element=null;      SAXBuilder builder = new SAXBuilder();      Document doc = builder.build(new File(xmlFile));     if(doc.getRootElement().getChild(nodeName)!=null){      System.out.println("该节点以存在!");     }     else{      element =new Element(nodeName);              doc.getRootElement().addContent(element);              XMLOutputter fmt = new XMLOutputter();              fmt.output(doc, System.out);              FileWriter writer = new FileWriter(xmlFile);              fmt.output(doc, writer);        writer.close();     }              }          catch(Exception ex){           ex.printStackTrace();          }  }  //增加节点属性    //第1个参数:要增加属性的节点的名字,第2个参数:要增加属性的名字,第3个参数:属性的值,第4个参数:要修改xml的路进名  public void setXMLNodeAttribute(String nodeName,String attribute,String value,String xmlFile){   try {    SAXBuilder builder = new SAXBuilder();    Document doc = builder.build(new File(xmlFile));    Element e=doc.getRootElement();       //System.out.println("a"+ e.getChild("servlet"));     if(e.getChild(nodeName)==null){     System.out.println("该节点不存在!");    }    else{    e.getChild(nodeName).setAttribute(attribute,value);    XMLOutputter fmt = new XMLOutputter();             fmt.output(doc, System.out);             FileWriter writer = new FileWriter(xmlFile);             fmt.output(doc, writer);       writer.close();    }             }         catch(Exception ex){          ex.printStackTrace();         }  }  //增加接点内容    //第1个参数:要增加内容的节点的名字,第2个参数:要增加的内容,第3个参数:要修改xml的路进名  public void setXMLNodeContent(String nodeName,String content,String xmlFile){   try{    SAXBuilder builder = new SAXBuilder();    Document doc = builder.build(new File(xmlFile));    Element e=doc.getRootElement();    //System.out.println("a"+ e.getChild("servlet"));    if(e.getChild(nodeName)==null){     System.out.println("该节点不存在!");    }    else if(e.getChild(nodeName).getText().equals(content)){     System.out.println("该节点内容以存在!");         }    else{     e.getChild(nodeName).addContent(content);    XMLOutputter fmt = new XMLOutputter();    fmt.output(doc, System.out);    FileWriter writer = new FileWriter(xmlFile);    fmt.output(doc, writer);    writer.close();    }   }   catch(Exception ex){    ex.printStackTrace();   }  }     //增加子接点    //第1个参数:要增子节点的节点的名字,第2个参数:要增加的子节点的名字,第3个参数:要修改xml的路进名  public void setXMLChildNode(String nodeName,String childName,String xmlFile){   try{    SAXBuilder builder = new SAXBuilder();    Document doc = builder.build(new File(xmlFile));    Element e=doc.getRootElement();             if(e.getChild(nodeName)==null){     System.out.println("该节点不存在!");    }    else if(e.getChild(nodeName).getChild(childName)!=null){     System.out.println("该子节点以存在!");    }    else{     Element child=new Element(childName);      e.getChild(nodeName).addContent(child);     XMLOutputter fmt = new XMLOutputter();     fmt.output(doc, System.out);     FileWriter writer = new FileWriter(xmlFile);     fmt.output(doc, writer);     writer.close();    }   }   catch(Exception ex){    ex.printStackTrace();   }  }  //增加子节点属性    //第1个参数:节点的名字,第2个参数:要增加属性的子节点的名字,第3个参数:属性的名字,第4个参数:属性的值,第4个参数:要修改xml的路进名     public void setXMLChildNodeAttribute(String nodeName,String childName,String attribute,String value,String xmlFile){   try{    SAXBuilder builder = new SAXBuilder();    Document doc = builder.build(new File(xmlFile));    Element e=doc.getRootElement();       if(e.getChild(nodeName)==null){     System.out.println("该节点不存在!");    }    else if(e.getChild(nodeName).getChild(childName)==null){     System.out.println("该子节点不存在!");    }    else{     e.getChild(nodeName).getChild(childName).setAttribute(attribute,value);     XMLOutputter fmt = new XMLOutputter();     fmt.output(doc, System.out);     FileWriter writer = new FileWriter(xmlFile);     fmt.output(doc, writer);     writer.close();    }   }   catch(Exception ex){    ex.printStackTrace();   }     }  //增加子节点的内容    //第1个参数:节点的名字,第2个参数:要增加属性的子节点的名字,第3个参数:要增加的内容,第4个参数:要修改xml的路进名  public void setXMLChildNodeContent(String nodeName,String childName,String content,String xmlFile){   try{    SAXBuilder builder = new SAXBuilder();    Document doc = builder.build(new File(xmlFile));    Element e=doc.getRootElement();       if(e.getChild(nodeName)==null){     System.out.println("该节点不存在!");    }    else if(e.getChild(nodeName).getChild(childName).getText().equals(content)){     System.out.println("该子节点内容以存在!");    }    else if(e.getChild(nodeName).getChild(childName)==null){     System.out.println("该子节点不存在!");    }    else{     e.getChild(nodeName).getChild(childName).addContent(content);       XMLOutputter fmt = new XMLOutputter();     fmt.output(doc, System.out);     FileWriter writer = new FileWriter(xmlFile);     fmt.output(doc, writer);     writer.close();    }   }   catch(Exception ex){    ex.printStackTrace();   }    }  //删除节点    //第1个参数:要删除的节点名字,第2个参数:要修改xml的路进名  public void removeXMLNode(String nodeName,String xmlFile){   try{    SAXBuilder builder = new SAXBuilder();    Document doc = builder.build(new File(xmlFile));    Element e=doc.getRootElement();       if(e.getChild(nodeName)==null){     System.out.println("该节点不存在!");    }    else{     e.removeChild(nodeName);    XMLOutputter fmt = new XMLOutputter();    fmt.output(doc, System.out);    FileWriter writer = new FileWriter(xmlFile);    fmt.output(doc, writer);    writer.close();    }   }   catch(Exception ex){    ex.printStackTrace();   }  }  //删除子节点    //第1个参数:节点名字,第2个参数:要删除的子节点的名字,第3个参数:要修改xml的路进名  public void removeXMLChildNode(String nodeName,String childName,String xmlFile){   try{    SAXBuilder builder = new SAXBuilder();    Document doc = builder.build(new File(xmlFile));    Element e=doc.getRootElement();    //System.out.println("a"+ e.getChild("servlet"));    if(e.getChild(nodeName)==null){     System.out.println("该节点不存在!");    }    else if(e.getChild(nodeName).getChild(childName)==null){     System.out.println("该子节点不存在!");    }    else{    e.getChild(nodeName).removeChild(childName);    XMLOutputter fmt = new XMLOutputter();    fmt.output(doc, System.out);    FileWriter writer = new FileWriter(xmlFile);    fmt.output(doc, writer);    writer.close();    }       }   catch(Exception ex){    ex.printStackTrace();   }  }  public static void main(String[] args)throws Exception{   CreateXML xml=new CreateXML();   //新建xml   xml.ctrateXMlFile("create.xml");   //增加节点   xml.addXMLNode("zhangbo3","create.xml");   //增加节点属性   xml.setXMLNodeAttribute("zhangbo3","name","zhangbo","create.xml");   //增加节点的内容   xml.setXMLNodeContent("zhangbo3","white-collar","create.xml");   //增加子节点   xml.setXMLChildNode("zhangbo3","mapping","create.xml");   //增加子节点的属性   xml.setXMLChildNodeAttribute("zhangbo3","mapping","name","struts-config.xml","create.xml");   //增加子节点的内容   xml.setXMLChildNodeContent("zhangbo3","mapping","hello word!","create.xml");   //删除节点   //xml.removeXMLNode("zhangbo3","create.xml");   //删除子节点   //xml.removeXMLChildNode("zhangbo3","mapping","create.xml");  } }  
 
  |