阅读内容 

Coldfusion之xml构建(二)

[日期:2006-05-19] 来源:  作者: [字体: ]
上篇的文章中简单的叙述了下关于生成XML文件的应用,在这篇文章里我用曾经写的例子表达如何对xml的文件进行添加节点的修改。
首先你要确定你的XML结构是怎么样,我演示的范例中,xml的结构是一个根节点下的子节点,在子节点中还带有两个children的属性。所以在了解这个结构的前提下,我想更有利于大家参考并修改成自己所需的程式 ,受CFDP·子心的建议,我开始偏向用cfscript来编辑自己的程式。xml节点的添加实际上做的事就两样,一是读取这个xml的结构,确认自己要从哪添加,二是用循环添加xml信息,把添加后的xml文件读到一个新建的xml对象上,并用cffile写出来。

<cfset DIR="#getDirectoryFromPath(getTemplatePath())#">
<cffile action="read" charset="utf-8" file="#DIR#imgList.XML" variable="imgListXMLFile">
<cfset atext=节点内容>
<cfset XMLinfo=节点标签属性>
<cfset XMLpath=节点标签属性>
<cfset id=id号>
<cfscript>
function AppendXMLNode(){
  var XMLDoc=XmlParse(imgListXMLFile);//新建xml对象
  var XMLquery=xmlDoc.xmlroot.XmlChildren;//确认自己的children路径
  var XMLLength=ArrayLen(XMLquery);//记录长度
  var text1=ArrayNew(1);//新建数据存储XML
  var info=ArrayNew(1);
  var path=ArrayNew(1);
  MyDoc = XMLNew();//新建xml对象
  MyDoc.XMLRoot = XmlElemNew(MyDoc,"imgList");//新建root
  for(i=1;i le XMLLength; i=i+1){
        item=XMLquery[i];
        text1[i]=item.XMLtext;
  info[i]=item.XMLAttributes["info"];
  path[i]=item.XMLAttributes["path"];
  }
  ArrayInsertAt(text1,id,atext);//添加节点信息
  ArrayInsertAt(info,id,XMLinfo);
  ArrayInsertAt(path,id,XMLpath);
  ArrayAppendLeng=ArrayLen(text1);
  for(J=1;J le ArrayAppendLeng;J=J+1){
  MyDoc.imgList.XMLChildren[J] = XmlElemNew(MyDoc,"list");//将信息读入新建的xml对象
  MyDoc.imgList.XMLChildren[J].XmlTEXT = text1[J];
  MyDoc.imgList.XMLChildren[J].XmlAttributes["info"]=info[J];
  MyDoc.imgList.XMLChildren[J].XmlAttributes["path"]=path[J];
  }
        XML_info=text1;
  }
  appendXMLnode();  
}
</cfscript>
<cffile action="write" addnewline="no" charset="utf-8" file="#dir#imgList.XML" output="#toString(MyDoc)#">
<cfdump var="#XML_info#">

到此为止,你已经完成了对一个XML的node的添加,可以根据大家的自己的需要,把它修改使用哦!
阅读:
录入:浅白狐

推荐 】 【 打印
相关新闻      
本文评论       全部评论
发表评论
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款


点评: 字数
姓名:
Advertisement
内容查询


Advertisement