我有一个有这行的功能:
var returnString:String = items[0].@month;
Run Code Online (Sandbox Code Playgroud)
@month是XML节点上的一个属性,如下所示:
<xmlnode month="JAN"/>
Run Code Online (Sandbox Code Playgroud)
好的,但是我需要抽象属性名称,这样我就可以将一个字符串传递给函数,并获取属性的内容,其名称与我传递的字符串相匹配.所以例如,如果我像这个函数("stone")一样调用函数,它返回项[0].@ stone.我希望这很清楚.
有谁知道我该怎么做?
谢谢.
我在这里使用Adobe Flex/Air,但据我所知,这适用于所有JavaScript.我曾经遇到过这个问题几次,那里必须有一个简单的解决方案!
假设我有以下XML(使用e4x):
var xml:XML = <root><example>foo</example></root>
Run Code Online (Sandbox Code Playgroud)
我可以使用以下代码更改示例节点的内容:
xml.example = "bar";
Run Code Online (Sandbox Code Playgroud)
但是,如果我有这个:
var xml:XML = <root>foo</root>
Run Code Online (Sandbox Code Playgroud)
如何更改根节点的内容?
xml = "bar";
Run Code Online (Sandbox Code Playgroud)
显然不起作用,因为我试图将字符串分配给XML对象.
好的,这是我的代码:
var xml:XML =
<xml>
<typeA amount1="500" amount2="300" amount3="250" date="2008-02-17"/>
<typeA amount1="500" amount2="300" amount3="250" date="2008-02-16"/>
<typeA amount1="500" amount2="300" amount3="250" date="2008-02-17"/>
<typeB amount1="500" amount2="300" amount3="250" date="2008-02-18"/>
<typeB amount1="500" amount2="300" amount3="250" date="2008-02-19"/>
<typeC amount1="500" amount2="300" amount3="250" date="2008-02-20"/>
<typeC amount1="500" amount2="300" amount3="250" date="2008-02-21"/>
<typeC amount1="500" amount2="300" amount3="250" date="2008-02-20"/>
</xml>;
trace(xml.typeA.(@date == "2008-02-16")); // no results
trace(xml.typeA.(@date == "2008-02-17")); // finds both
trace(xml.typeC.(@date == "2008-02-20")); // finds both
trace(xml.typeC.(@date == "2008-02-21")); // no results
Run Code Online (Sandbox Code Playgroud)
似乎只有在发现超过1时才发现它.
难道我做错了什么?
我正在使用Action脚本3构建应用程序我正在从Web检索一些XML但是节点名称是mms:图像mms:结果等我的动作脚本编译器抛出错误因为它不期望在节点中看到半冒号名称.如何访问节点?
谢谢
<node>left</node>
<class></class>
<et>16,471</et>
Run Code Online (Sandbox Code Playgroud)
当我得到标签时class,我看到错误1084,因为class是保留字
vars["class1"] = result.item[0].class;
Run Code Online (Sandbox Code Playgroud) 我在AS3中有一个XML对象,格式如下:
<data>
<nodes>
<item></item>
<item></item>
...
</nodes>
<nodes>
<item></item>
<item></item>
...
</nodes>
...
</data>
Run Code Online (Sandbox Code Playgroud)
我的问题是我想将节点名称("节点"和"项目")重命名为更相关的东西,例如" 节点 "可以是" 作者 ",而" 项目 "可以是" 书 ".
那么在AS3中使用E4X的最佳方法是什么?
在下面的代码块中,如果我调试并查看它显示为XMLList的var obj.theID.即使代码跟踪正确,我觉得它应该是一个字符串而不是XMLList.
所以我的问题是如何让它分配字符串而不是XMLList?
var myXML:XML = new XML(
<panels>
<panel id="1"/>
<panel id="2"/>
<panel id="3"/>
</panels>
);
var panels:XMLList = new XMLList( myXML.children());
trace( panels.length()); // is as expected
for each( var panel:XML in (new XMLList( myXML.children())) ){
var obj:Object = new Object( );
// XMLList is assigned here but why? and how can I make it a string?
obj.theID = panel.@id;
// id is traced as expected but apparently it is just converting the XMLlist to a string.
trace( …Run Code Online (Sandbox Code Playgroud)