删除someXml.xmlNode [numb]在成功删除后失败

时间:2012-04-22 19:57:09

标签: xml actionscript-3 flash

我发现问题出现在哪里,但无法理解纠正问题的原因和方法。

它适用于其他框架,但差别不大: 一些成功删除后无法删除的XML:

<work name="New Work Title 14" img="" logo="" link="" image=""></work>
<work name="New Work Title 15" img="" logo="" link="" image=""></work>
.... etc

来自相同脚本的框架中的XML:

<person name="New Object Name 8" poz="" mail="" thumb="" img=""/>

第一个跟踪和第三个跟踪在一些成功删除后给出相同的值:

function deleteWork(){

    trace(siteDataXML[Work_Node].length()) // freezes on ~10

    trace(delete siteDataXML[Work_Node][Work_List.selectedIndex]) //always true

    trace(siteDataXML[Work_Node].length()) // freezes on ~10


    Work_DP.removeItemAt(Work_List.selectedIndex); //
    trace("dp ", Work_DP.length)                 // decreases as it should


    debug("Data Deleted. Autosaving...")
    Work_Save();

}

可以是</work>的原因,但在其他测试文件中它会删除类似的xml节点。 如果我生成没有</work>的xml,则删除工作正常。

任何想法? 希望有人可以提供帮助。

UPDATE!

我想我找到了原因。

Flash自动转换

<work name="New Work Title 14" img="" logo="" link="" image=""></work>

<work name="New Work Title 14" img="" logo="" link="" image="" />

此删除后不删除节点。

我添加了<![CDATA[]]>

<work name="New Work Title 14" img="" logo="" link="" image=""><![CDATA[]]></work>

但为什么会这样呢?

1 个答案:

答案 0 :(得分:1)

截止日期的原因我不能花很多时间在它上面,并通过重新设置管理面板页面脚本来绕过它。找到更好的方法。

我正在尝试在新的干净文件上模拟该问题,但不能......

我认为解决方案应该是将<![CDATA[]]>添加到xmls以防止对话。如果所有XML都保留相同的格式,则删除应该可以正常工作。

P.S。 当文本转换为xml并保存时,cdata将转换为转义格式。使用cdata保持htmlText格式的方法是:

someXML.someNode[i] = new XML('<test aaa="aaaa" bbb="bbbb" ccc="cccc"><![CDATA['+someTextField.htmlText+']]></test>')

不是这样:

someXML.someNode[i] = '<![CDATA['+someString+']]>'