首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

如何获取xml多个值

2012-02-26 
怎么获取xml多个值xml文档:categoryitemidEST-1/itemidproductidFI-SW-01/productidname天使

怎么获取xml多个值
xml文档:
<category>
<itemid>EST-1</itemid>
<productid>FI-SW-01</productid>
<name>天使鱼</name>
<price>¥18.50</price>

<itemid>EST-3</itemid>
<productid>FI-SW-02</productid>
<name>虎鲨</name>
<price>¥18.50</price>

<itemid>EST-4</itemid>
<productid>FI-FW-01</productid>
<name>锦鲤</name>
<price>¥18.50</price>
 
<itemid>EST-20</itemid>
<productid>FI-FW-02</productid>
<name>金鱼</name>
<price>¥18.50</price>
</category>
例如:我想获取xml里面的所有<name>标签的值,高手帮忙,急?????

[解决办法]
var xxx:XML = <category>
<itemid>EST-1</itemid>
<productid>FI-SW-01</productid>
<name>天使鱼</name>
<price>¥18.50</price>
<itemid>EST-3</itemid>
<productid>FI-SW-02</productid>
<name>虎鲨</name>
<price>¥18.50</price>
<itemid>EST-4</itemid>
<productid>FI-FW-01</productid>
<name>锦鲤</name>
<price>¥18.50</price>
<itemid>EST-20</itemid>
<productid>FI-FW-02</productid>
<name>金鱼</name>
<price>¥18.50</price>
</category>;
var nameList:XMLList = xxx["name"]
for(var i:int=0;i<nameList.children().length();i++){
trace(nameList.children()[i])
}
[解决办法]
直接取.


Java code
var str:String= <category><itemid>EST-1</itemid><productid>FI-SW-01</productid><name>天使鱼</name><price>¥18.50</price><itemid>EST-3</itemid><productid>FI-SW-02</productid><name>虎鲨</name><price>¥18.50</price><itemid>EST-4</itemid><productid>FI-FW-01</productid><name>锦鲤</name><price>¥18.50</price><itemid>EST-20</itemid><productid>FI-FW-02</productid><name>金鱼</name><price>¥18.50</price></category>;var xml:XML = XML(str);for (var i:Object in xml.name){    trace(xml.name[i])}
[解决办法]
XML.child(name)应该可以直接取到name标签的XMLList对象。
像LS的循环操作也是可以的。
[解决办法]
探讨
我是想直接获取所有name里面的值,然后赋值给DataGrid的dataField属性

[解决办法]
var root:XMLNode = lx.firstChild;//取得根对象的子节点
可以写个遍历解析也可以用递归
root.childNodes[j].nodeName; //获得名
root.childNodes[j].firstChild;//值
然后判断下 var nameV = (root.childNodes[j].nodeName=="name")? root.childNodes[j].firstChild:0;

具体你搜索下网上好多
[解决办法]
trace(yourXML.name)
输出:
<name>天使鱼</name>
<name>虎鲨</name>
<name>锦鲤</name>
<name>金鱼</name>

trace(yourXML.name[1])
输出:
虎鲨
--------------------------
对EST-1进行赋值:
private var xml:XML = yourXML

<mx:DataGridColumn headerText= "图片 " dataField= 你的xml里没有 />
<mx:DataGridColumn headerText= "项目编号 " dataField= xml.itemid[0]/>
<mx:DataGridColumn headerText= "商品编号 " dataField= xml.productid[0]/>
<mx:DataGridColumn headerText= "名称 " dataField= xml.name[0]/>


<mx:DataGridColumn headerText= "价格 " dataField= xml.price[0]/> 
--------------------------
其实as3对xml的操作非常方便。对于网络通信来说也很重要。建议楼主系统的去看一下。


[解决办法]

探讨

这样好像每一个只能获取一个值,我想获取全部值,例如:<name>里面的所有值,如果是用ArrayCollection,我可以做出来,就是用xml只能获取其中一个值.

热点排行