dom4j在指定位置新增节点

     欢迎光临笔者博客 http://www.lovestblog.cn
     最近两天本人在为本博实现rss发布和订阅,本来是想在前端实现xml的生成和修改,因为用as3的E4X操作xml比较方便,但是后面发现不能为元素设置CDATA值,于是只好作罢,便只能依靠后台的java来实现此功能了,当然操作xml的话,我首先想到了dom4j,dom4j操作xml还是比较方便的,即可以轻松实现我们的CDATA设置,也可以为我们任意位置插入元素提供了实现,对于在指定位置新增节点开始我有点蒙了,后面通过网上搜索资源加之自己的一些理解,而实现了此功能,下面展示了部分代码供今后参考吧:
public static int createXMLFile(String filename,List list){
	       /** 返回操作结果, 0表失败, 1表成功 */
	       int returnValue = 0;
	       Document document = DocumentHelper.createDocument();
	       Element rssElement = document.addElement("rss");
	       rssElement.addAttribute("version", "2.0");
	       Element channelElement = rssElement.addElement("channel");
	       Element titleElement = channelElement.addElement("title");
	       titleElement.setText("你假笨(nijiaben)心情技术博客");	
	       
	       Element linkElement = channelElement.addElement("link");
	       linkElement.setText("http://www.lovestblog.cn");
	       
	       Element descriptionElement = channelElement.addElement("description");
	       descriptionElement.setText("专注于Java,Flex技术开发研究");
	       
	       Element languageElement = channelElement.addElement("language");
	       languageElement.setText("zh-cn");
	       
	       Element lastBuildDateElement = channelElement.addElement("lastBuildDate");
	       lastBuildDateElement.setText(new java.text.SimpleDateFormat("yyyy-mm-dd hh:mm:ss",Locale.CHINA).format(((ArticleInfo)(list.get(0))).getCreateTime()));	       
	       	     
	       for(int i=list.size()-1;i>0;i--){
	    	   ArticleInfo ainfo=(ArticleInfo)(list.get(i));
		       Element itemElement = channelElement.addElement("item");
		       Element title1Element = itemElement.addElement("title");
		       title1Element.setText(ainfo.getTitle());
		       Element description1Element = itemElement.addElement("description");
		       int maxLen=5000;
		       if(ainfo.getRssContent().length()<5000){
		    	   maxLen=ainfo.getRssContent().length();
		       }
		       description1Element.addCDATA(ainfo.getRssContent().substring(0, maxLen));       
		       Element pubDate=itemElement.addElement("pubDate");
		       pubDate.setText(new java.text.SimpleDateFormat("yyyy-mm-dd hh:mm:ss",Locale.CHINA).format(ainfo.getCreateTime()));	           	   
		       Element link1Element=itemElement.addElement("link");
		       link1Element.setText("http://www.lovestblog.cn");
	       }
	       try{
	           /** 将document中的内容写入文件中 */
	           XMLWriter writer = new XMLWriter(new FileOutputStream(path+filename));
	           writer.write(document);
	           writer.close();
	           /** 执行成功,需返回1 */
	           returnValue = 1;
	       }catch(Exception ex){
	           ex.printStackTrace();
	       }
	       return returnValue;
	    }

你可能感兴趣的:(xml,Flex)