本站内容搜索:
   您的位置:素材中国>>教程 >>网络编程 >>XML编程 >>XML 的 RUD 提交错误报告
XML 的 RUD
[ 来源:素材中国 | 作者:Rosen Jiang| 时间:2006-03-31 15:49:03 | 浏览:人次 ]

 
    在工作中使用 XML 已经很长时间了,不过长久以来都是进行的读操作,或者在生成 XML 时完全使用 StringBuffer 来构造。进行完整的读取、添加、删除、修改还是最近的事情。在这里我采用的是 DOM4J,其实呢这些内容都很简单,如果愿意,各位大可直接参考官方的 Cookbook(http://www.dom4j.org/cookbook.html)和 Quick Start(http://www.dom4j.org/guide.html)。
  
对于给定的 XML 文件,其结构如下:
<?xml version="1.0" encoding="GBK" ?>
<propertysets>

<propertset name="rea_faculty" description="team">
 <field>10290</field>
</propertset>
<propertset name="faculty_lea" description="another team">
 <field>10286</field>
</propertset>
<propertset name="office" description="teams">
 <field>10287</field>
</propertset>

</propertysets>

  为以上 XML 文件构造 Propertys 类:

public class Propertys {

private String name;
private String description;
private String field;

public String getDescription() {
 return description;
}

public void setDescription(String description) {
 this.description = description;
}

public String getField() {
 return field;
}

public void setField(String field) {
 this.field = field;
}

public String getName() {
 return name;
}

public void setName(String name) {
 this.name = name;
}
}

读取方法(返回包含 Propertys 的列表):
  

 public List getAll() {
 List list = new ArrayList();
 try {
  InputStream is = getClass().getResourceAsStream("/navigation.xml");
  SAXReader reader = new SAXReader();  
  Document document = reader.read(is);
  Element root = document.getRootElement();
  Iterator lv = root.elementIterator("propertset");
  Element el = null;
  while (lv.hasNext()) {
  Propertys property=new Propertys();
  el = (Element) lv.next();
  property.setName(el.attributeValue("name"));
  property.setDescription(el.attributeValue("description"));
  property.setField(el.elementText("field"));
  list.add(property);
  }
 } catch (Exception e) {
  e.printStackTrace();
 }
 return list;
}

添加新节点(成功返回 1 否则 0):
    

 public int saveProperty(Propertys property) {
 try {
  InputStream is = getClass().getResourceAsStream("/navigation.xml");
  SAXReader reader = new SAXReader();  
  Document document = reader.read(is);
  Element root = document.getRootElement();
  root.addElement("propertset")
  .addAttribute("name",property.getName())
  .addAttribute("description",property.getDescription())
  .addElement("field").addText(property.getField());
 
  OutputFormat outformat = OutputFormat.createPrettyPrint();
  outformat.setEncoding("GBK");
  FileWriter out = new FileWriter(
   System.getProperty("user.dir")
   +"/web/WEB-INF/classes/navigation.xml");
  XMLWriter writer=new XMLWriter(out,outformat);
  writer.write(document);
  writer.close();
  return 1;
 } catch (Exception e) {
  e.printStackTrace();
 }
 return 0;
}

更新节点(按照 name 属性查找):
  

 public int updateProperty(String pro,Propertys property) {
 try {
  InputStream is = getClass().getResourceAsStream("/navigation.xml");
  SAXReader reader = new SAXReader();  
  Document document = reader.read(is);
  Element root = document.getRootElement();
  Iterator lv = root.elementIterator("propertset");
  Element el = null;
  while (lv.hasNext()) {
  el = (Element) lv.next();
  if (el.attributeValue("name").equals(pro)) {
   el.setAttributeValue("name",property.getName());
   el.setAttributeValue("description",property.getDescription());
   el.element("field").setText(property.getField());
  }
  }

  OutputFormat outformat = OutputFormat.createPrettyPrint();
  outformat.setEncoding("GBK");
  FileWriter out = new FileWriter(
   System.getProperty("user.dir")
   +"/web/WEB-INF/classes/navigation.xml");
  XMLWriter writer=new XMLWriter(out,outformat);
  writer.write(document);
  writer.close();
  return 1;
 } catch (Exception e) {
  e.printStackTrace();
 }
 return 0;
}

删除节点:
  

 public int delProperty(String pro) {
 try {
  InputStream is = getClass().getResourceAsStream("/navigation.xml");
  SAXReader reader = new SAXReader();  
  Document document = reader.read(is);
  Element root = document.getRootElement();
  Iterator lv = root.elementIterator("propertset");
  Element el = null;
  while (lv.hasNext()) {
  el = (Element) lv.next();
  if (el.attributeValue("name").equals(pro)) {
   el.detach();
  }
  }

  OutputFormat outformat = OutputFormat.createPrettyPrint();
  outformat.setEncoding("GBK");
  FileWriter out = new FileWriter(
   System.getProperty("user.dir")
   +"/web/WEB-INF/classes/navigation.xml");
  XMLWriter writer=new XMLWriter(out,outformat);
  writer.write(document);
  writer.close();
  return 1;
 } catch (Exception e) {
  e.printStackTrace();
 }
 return 0;
}

 
 
       
   您的位置:素材中国>>教程 >>网络编程 >>XML编程 >>XML 的 RUD
 点此在百度搜索关键字"XML的RUD"  点此在GOOGLE搜索关键字"XML的RUD"
热门文章:
  ·XML CDATA的作用   ·WAP(wml)开发问答
  ·JDOM使用详解及实例   ·利用SAX解析读取XML文件
  ·用XMLHTTP读取网页源代码   ·XSL中实现HTML的表格自动换行
  ·XML基础入门   ·XML+CSS的范例
  ·XML语言技巧:WML自动跳转   ·XML 的 RUD

  首页  素材图片  高精图库  矢量图库  网页素材  网页模板  壁纸  明星  下载  教程  字体  香车美女  QQ专题  论坛

网站介绍 | 广告业务 | 设计业务 | 免责声明 | 版权声明 | 联系我们|提交错误报告
素材中国版权所有