麻烦insertChildAfter对XML的actionsctipt 3 [英] Trouble with insertChildAfter for xml in actionsctipt 3

查看:411
本文介绍了麻烦insertChildAfter对XML的actionsctipt 3的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个很大的麻烦,非常嵌套在我的XML的现有节点之后插入一个孩子。我试图插入下方object3_LIST3另一个IObject节点。

我试过相同的方案<一href="http://stackoverflow.com/questions/189033/having-trouble-with-insertchildbefore-and-insertchildafter-in-as3">having在AS3 这一带insertChildBefore和insertChildAfter麻烦。这始终输出不定,我似乎无法弄清楚为什么..谁能帮助?

如果我跟踪contentNode和parentNode,它输出:

  object3_LIST3
 

 &LT;对象&GT;
  &LT; IObject&GT; object3_LIST3&LT; / IObject&GT;
&LT; /对象&GT;
 

好像没有变化都对文档所作的...

  VAR contentNode:XML = xml.Menu.menuArr.HeadMenuItem [1] .subMenu.subMenuItem [1] .objects [0];
变种parentNode:XML = xml.Menu.menuArr.HeadMenuItem [1] .subMenu.subMenuItem [1] .objects.IObject [0];
XML = parentNode.insertChildAfter(contentNode,的xmlString);
跟踪(XML);
 


 &LT; PandemicMenu&GT;
    &LT;菜单&gt;
        &LT; menuArr&GT;
            &LT; HeadMenuItem&GT;
                &LT;子&GT;
                    &LT; IObject&GT;
                        object1_LIST1
                    &LT; / IObject&GT;
                    &LT; IObject&GT;
                        object2_LIST1
                    &LT; / IObject&GT;
                    &LT; IObject&GT;
                        object3_LIST1
                    &LT; / IObject&GT;
                &LT; /子菜单&GT;
            &LT; / HeadMenuItem&GT;

            &LT; HeadMenuItem&GT;
                &LT;子&GT;
                    &LT; IObject&GT;
                        object1_LIST2
                    &LT; / IObject&GT;
                    &LT; subMenuItem&GT;
                        &LT;对象&GT;
                            &LT; IObject&GT;
                                object2_LIST2
                            &LT; / IObject&GT;
                        &LT; /对象&GT;
                    &LT; / subMenuItem&GT;
                    &LT; subMenuItem&GT;
                        &LT;对象&GT;
                            &LT; IObject&GT;
                                object3_LIST3
                            &LT; / IObject&GT;
想在这里插入新IObject
                        &LT; /对象&GT;
                    &LT; / subMenuItem&GT;
                &LT; /子菜单&GT;
            &LT; / HeadMenuItem&GT;
        &LT; / menuArr&GT;
    &LT; /菜单&gt;
&LT; / PandemicMenu&GT;
 

解决方案

您的父节点和子节点切换。你的孩子节点是:

  VAR contentNode:XML = xml.Menu.menuArr.HeadMenuItem [1] .subMenu.subMenuItem [1] .objects [0];
 

这将跟踪具有以下一个 contentNode.toXMLString()

 &LT;对象&GT;
  &LT; IObject&GT; object3_LIST3&LT; / IObject&GT;
&LT; /对象&GT;
 

由于文档状态:如果提供child1,但它不能在XML对象存在,XML对象不修改并返回undefined。的http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/XML.html#insertChildAfter%28%29

这个问题可能是你要求的子节点查找其父节点,它无法找到,因此原来是不变。请尝试以下操作:

  VAR parentNode:XML = xml.Menu.menuArr.HeadMenuItem [1] .subMenu.subMenuItem [1] .objects [0];
变种contentNode:XML = xml.Menu.menuArr.HeadMenuItem [1] .subMenu.subMenuItem [1] .objects.IObject [0];
XML = parentNode.insertChildAfter(contentNode,的xmlString);
跟踪(XML);
 

我所做的只是切换parentNode和contentNode XML对象的内容。

I'm having a lot of trouble with inserting a child after an existing node that is VERY nested in my XML. I'm trying to insert another IObject node beneath object3_LIST3.

I've tried the same scheme as having trouble with insertChildBefore and insertChildAfter in AS3 with this. This always outputs undefined and I can't seem to figure out why.. Can anyone help?

If I trace contentNode and parentNode, it outputs:

object3_LIST3

and

<objects>
  <IObject>object3_LIST3</IObject>
</objects>

As if no changes were made at all to the document...

var contentNode:XML = xml.Menu.menuArr.HeadMenuItem[1].subMenu.subMenuItem[1].objects[0];
var parentNode:XML = xml.Menu.menuArr.HeadMenuItem[1].subMenu.subMenuItem[1].objects.IObject[0];
xml = parentNode.insertChildAfter( contentNode, xmlString );
trace(xml);


<PandemicMenu>
    <Menu>
        <menuArr>
            <HeadMenuItem>
                <subMenu>
                    <IObject>
                        object1_LIST1
                    </IObject>
                    <IObject>
                        object2_LIST1
                    </IObject>
                    <IObject>
                        object3_LIST1
                    </IObject>
                </subMenu>
            </HeadMenuItem>

            <HeadMenuItem>
                <subMenu>
                    <IObject>
                        object1_LIST2
                    </IObject>
                    <subMenuItem>
                        <objects>
                            <IObject>
                                object2_LIST2
                            </IObject>
                        </objects>
                    </subMenuItem>
                    <subMenuItem>
                        <objects>
                            <IObject>
                                object3_LIST3
                            </IObject>
Want to insert new IObject here
                        </objects>
                    </subMenuItem>
                </subMenu>
            </HeadMenuItem>
        </menuArr>
    </Menu>
</PandemicMenu>

解决方案

Your parent node and child nodes are switched. You child node is:

var contentNode:XML = xml.Menu.menuArr.HeadMenuItem[1].subMenu.subMenuItem[1].objects[0];

Which would trace the following with a contentNode.toXMLString():

<objects>
  <IObject>object3_LIST3</IObject>
</objects>

Since the docs state: "If child1 is provided, but it does not exist in the XML object, the XML object is not modified and undefined is returned." http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/XML.html#insertChildAfter%28%29

The problem could be that you are asking the child node to look for its parent node, which it can't find, and so the original is unmodified. Try the following:

var parentNode:XML = xml.Menu.menuArr.HeadMenuItem[1].subMenu.subMenuItem[1].objects[0];
var contentNode:XML = xml.Menu.menuArr.HeadMenuItem[1].subMenu.subMenuItem[1].objects.IObject[0];
xml = parentNode.insertChildAfter( contentNode, xmlString );
trace(xml);

All I did was switch the content of the parentNode and contentNode XML objects.

这篇关于麻烦insertChildAfter对XML的actionsctipt 3的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆