获取xml节点的值并使用as3对其进行操作

Posted

技术标签:

【中文标题】获取xml节点的值并使用as3对其进行操作【英文标题】:Obtain value of xml node and manipulate it using as3 【发布时间】:2013-11-11 09:11:21 【问题描述】:

我有一个包含四个节点的大型 XML 文件,使用它来创建交互式金字塔样式信息图。问题是当年份超过记录集中的特定值时,我希望能够操纵条形的颜色,所以这就是我到目前为止所得到的。

*xml 文件

<dataset>
<source></source>
<extent></extent>
<scaleFac></scaleFac>
<recordSet year="1982" popTotal="1544545">
<m> //Male
<rd></rd>
<f> //Female
<rd></rd>

动作脚本

加载 xml 文件后,我创建了一个变量来保存我需要使用的记录集年份值。

function onComplete(evt:Event):void 
xmlData = new XML(evt.target.data);
//populates metadat fields
seriesLength=xmlData.recordSet.length();
yearRecord=xmlData.recordSet.text();

然后我创建了一个名为修改年份的函数,这是我的问题所在。我尝试创建了一个简单的 if else 语句,当值(Year)大于 2013 时,我们应该更改条形的颜色。

function modifyYear()

var mcF:MovieClip = new MovieClip();
var mcFGraphics:Graphics = mcF.graphics;

    if (yearRecord>2013)

        mcFGraphics.beginFill(0xFFFFFF,1);
    

    else 
        mcFGraphics.beginFill(0x660066,1);
    
;

我不确定如何检查年份记录是否超过特定值。我对 actionscript 很陌生,所以任何帮助都会非常有用。

【问题讨论】:

【参考方案1】:

我不确定我是否正确理解了您的问题。 如果您对如何从 xml 节点获取属性值感到困惑,那么这里是:

var yearRecord:String = xmlData.recordSet.attribute("year");

如果您不确定如何比较两个值,如果其中一个是字符串,另一个是整数,那么您必须将 String 转换为 int:

if( int(yearRecord) > 2013 )
...

请尝试一下,如果您不明白,请不要犹豫。 祝你好运:)

【讨论】:

非常感谢,条件语句似乎工作正常。现在我还有一个问题,我希望条形图在 2013 年过去时改变颜色。所以上述工作应该使用 mcFGraphics.beginFill 还是还有更多。一种更简单的方法可能只是在这种情况下变得可见的注释,任何帮助都将不胜感激

以上是关于获取xml节点的值并使用as3对其进行操作的主要内容,如果未能解决你的问题,请参考以下文章

[ActionScript 3.0] AS3 对XML的操作,创建删除增加节点方法

获取一个字符串的元素,它看起来像 XML 并在 java 中对其进行操作

C#如何读取XML中指定的节点值?

SQL 如何获取 XML 数据列的值并在 where 子句中使用它

添加键的值并按在 Python 中的字典列表中出现的键对其进行排序

获取元素的值并使其成为 XSLT 中属性的值?