XML的创建和指定元素的文本值进行替换

public class CreateXMLUtil {

 //无参数构造方法
 public CreateXMLUtil() {
 }

 //产生一个XML文档并存盘
 public Document createXML(String filename) {

  //使用DocumentHelper类创建一个文档实例
  Document document = DocumentHelper.createDocument();
  //创建根元素
  Element rootElement = document.addElement("linkmans");
  //为根元素创建第一个子元素
  Element firstElement = rootElement.addElement("linkman");

  Element element1 = firstElement.addElement("name");

  element1.setText("张三");

  Element element2 = firstElement.addElement("id");

  element2.setText("001");

  Element element3 = firstElement.addElement("email");

  element3.setText("ningyuxinyushan@163.com");

  Element element4 = firstElement.addElement("address");

  element4.setText("北京市");
  //将创建的XML文档存盘
  try {
   XMLWriter output = null;
   //创建一个格式化对象
   OutputFormat format = OutputFormat.createPrettyPrint();
   //使用TAB缩进
   format.setIndent("\t");
   //创建一个XMLWriter对象
   output = new XMLWriter(new FileOutputStream(new File(filename)),
     format);
   //将XML文档输出
   output.write(document);
   output.close();
  } catch (IOException e) {
   System.out.println(e.getMessage());
  }
  //返回XML文档对象
  return document;
 }

 //将文本串转换成XML文档并存盘
 public Document createTextXML(String filename, String text)
   throws Exception {
  //使用DocumentHelper类将文本串转换为XML文档
  Document document = DocumentHelper.parseText(text);
  //将创建的XML文档存盘
  try {
   XMLWriter output = null;
   //创建一个格式化对象
   OutputFormat format = OutputFormat.createPrettyPrint();
   //使用TAB缩进
   format.setIndent("\t");
   //创建一个XMLWriter对象
   output = new XMLWriter(new FileOutputStream(new File(filename)),
     format);
   //将XML文档输出
   output.write(document);
   output.close();
  } catch (IOException e) {
   System.out.println(e.getMessage());
  }
  //返回XML文档对象
  return document;
 }

 //在指定的文件中,将指定Xpath下的指定元素的文本值进行替换
 public Document update(String filename,String xpath,String element,
    String srcText,String tagText)throws Exception{
   
    //读取指定的XML文件,返回内存XML文档对象
   SAXReader reader = new SAXReader();
   Document doc = reader.read(new File(filename));
   //将指定的XPAHT的元素文本值进行替换
   List list = doc.selectNodes(xpath);
  
   Iterator it = list.iterator();
  
   while(it.hasNext()){
   
    Element el = (Element)it.next();
   
    Iterator itl = el.elementIterator(element);
   
    while(itl.hasNext()){
     Element titleElement = (Element)itl.next();
     if(titleElement.getText().equals(srcText)){
      titleElement.setText(tagText);
     }
    }
   }
   //将创建的XML文档存盘
   try{
    XMLWriter output = null;
    //创建一个格式化对象
    OutputFormat format = OutputFormat.createPrettyPrint();
    //使用Tab缩进
    format.setIndent("\t");
    //创建一个XMLWriter对象
    output = new XMLWriter(new FileOutputStream(new File(filename)),format);
    //将XML文档输出
    output.write(doc);
    output.close();
   }catch(IOException e){
    System.out.println(e.getMessage());
   }
   //返回XML文档对象
  return doc;
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值