首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 服务器 > 其他服务器 >

真诚请问一个cf修改xml的有关问题

2012-02-29 
真诚请教一个cf修改xml的问题本人初学,请大家指点!原xml文件:XML code?xml version1.0 encodingutf-

真诚请教一个cf修改xml的问题
本人初学,请大家指点!

原xml文件:

XML code
<?xml version="1.0" encoding="utf-8"?>  <root Name="root">       <child Name="child1" Expression="1000&lt;1&gt;1001&lt;11&gt;/>       <child Name="child2" Expression="1000&lt;2&gt;1001&lt;22&gt;/>  </root>


显示页面,显示节点child1的属性expression的一部分值:
HTML code
<cfset ThisPath="#getDirectoryFromPath(getTemplatePath())#"><cffile action="read" charset="utf-8" file="#ThisPath#1.xml" variable="myXMLFile"><cfset XMLDoc=XMLParse(myXMLFile)><cfset item=XMLDoc.XMLroot.XMLChildren[1]>   <form action="edittest.cfm" method="post" >      <input name="sExpression" value="<cfoutput>#item.XMLAttributes["Expression"]#</cfoutput>"/>      <input type="submit" name="Submit" value="修改" />    </form>


显示程序运行结果如预期:1000<1>1001<11> (xml转义符:"<"对应于&lt; ">"对应于&gt;)

现需要在显示结果上面修改节点child1的属性expression的一部分值,如将1000后面的1改为3,即目标xml的节点内容为: <child Name="child1" Expression="1000&lt;3&gt;1001&lt;11&gt;/>
   
edittest.cfm:
HTML code
<cfset ThisPath="#getDirectoryFromPath(getTemplatePath())#"><cffile action="read" charset="utf-8" file="#ThisPath#1.xml" variable="myXMLFile"><cfset XMLDoc=XMLParse(myXMLFile)><cfscript>XMLDoc.XMLroot.XMLChildren[1].XMLAttributes["Expression"]= "#form.sExpression#";</cfscript><cffile action="write" addnewline="no" charset="utf-8" file="#1.xml" output="#toString(XMLDoc)#"><cfoutput>成功修改xml文件!</cfoutput>


修改程序运行结果:
1、 xml文件的属性Expression内容变为1000&lt;3>1001&lt;11> 而不是预想的1000&lt;3&gt;1001&lt;11&gt; ("<"转义成了&lt;而">"没有转义&gt;,不知什么原因,而我要的xml必须完成转义才能用!)请高人指点
2、 有没有直接取Expression里要修改部分的方法,如直接取出1进行修改,而不用取出expression整个部分了,这样方便与界面交互

[解决办法]
看来只能使用replace来处理了。
HTML code
<cfset form.sExpression = replace(form.sExpression, ">","&gt;","all")> 

热点排行