在 as3 中访问单个 xml 子时遇到问题
Posted
技术标签:
【中文标题】在 as3 中访问单个 xml 子时遇到问题【英文标题】:Having trouble to access individual xml child in as3 【发布时间】:2015-07-19 22:21:43 【问题描述】:这是我的问题。摄影数据从 XML 文件加载。当用户单击按钮时,该信息将被覆盖并替换为 XML 文件中所有用户的名称。我想要做的是当用户点击其中一个摄影按钮时,即。然后将仅在 XML 文件中显示人员的姓名,并在 XML 中的配置文件中显示风景。
解决此问题的最佳方法是什么?我是否应该尝试编写一个 if 语句来告诉我是否在 XML 配置文件中找到了孩子,然后如果答案是肯定的则返回名称?这就是我一直在努力但没有成功的事情。 任何反馈都会很棒。谢谢。
photographylist:其中包含删除重复项的数组 来自 XML
var photographylist:Array = [];
xmlinfo.profile.photography.(photographylist.push(toString()));
for (var i:int =0; i<totalimage; i++)
textvar.text = photographylist[i];
background.addChild(textvar).addEventListener(MouseEvent.CLICK,loadnames);
var list2:Array = new Array();
xmlinfo.profile.first_name.(list2.push(toString()));
list2.sort();
trace(list2 + " array 2 list");
这是一个 XML 示例
<profile>
<first_name>ann</first_name>
<last_name> lee</last_name>
<photography>sport</photography>
<photography>landscape</photography>
<photography>still life</photography>
<image>img1.jpg</image>
<course>multimedia</course>
<email>annlee@mycit.ie</email>
</profile>
【问题讨论】:
您找到解决方案了吗? 嗨 LDSMS。不,我无法让它工作。刚刚回来。我将其更改为原始代码,因此摄影列表是 XML 中所有使用 E4X 过滤,您可以获得照片节点中包含文本 landscape 的所有配置文件的列表。
var list:XMLList = xmlinfo.profile.(photography.children().contains("landscape"));
//trace out all the names of the matches
for(var i:int=0;i<list.length();i++)
trace(list[i].first_name.text() + " " + list[i].last_name.text());
编辑
使用数组,您只需要遍历数组并检查所需的值。这是一个可以做到这一点的辅助函数:
var matchingItems:Array = getMatchingItems("landscape");
function getMatchingItems(str:String):Array
var results:Array = [];
for each(var item:String in photographyList)
if(item == str) results.push(item);
//or, if you want to see if it contains the text (instead of an exact match)
if(item.indexOf(str) > -1) results.push(item);
//use toUpperCase() on both strings if you want non-case sensitive
return results
【讨论】:
以上是关于在 as3 中访问单个 xml 子时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章