0

画像ギャラリーを作成しようとしています:

<card>
 <product catalog="Thread Works">
    <name>AK E001</name>    
    <price>45</price>
    <path>assets\cards\AK_E001.jpg</path>
 </product>

 <product catalog="Paper Work">
     <name>AK E001</name>   
    <price>45</price>
    <path>assets\cards\AK_PP003.jpg</path>
 </product>

<product catalog="Thread Works">
    <name>AK E002</name>    
    <price>50</price>
    <path>assets\cards\AK_E002.jpg</path>
 </product>

属性にアクセスできますが、「Thread Works」を選択 <product catalog="Thread Works"> している場合は、配列コレクションへの追加アイテムのために、子ノードでのみアクセスしたい ヘルプありがとう

4

3 に答える 3

3

http://livedocs.adobe.com/flex/3/html/help.html?content=13_Working_with_XML_08.htmlを参照してください。

あなたの場合:

var x:XML; // Xml にデータを入力します

var threadWorks:XML = x.product.(@catalog=="Thread Works");

編集: 警告: を忘れないでください。製品と@catalogの間

于 2011-09-08T07:24:45.343 に答える
0
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                       xmlns:s="library://ns.adobe.com/flex/spark" 
                       xmlns:mx="library://ns.adobe.com/flex/mx">
    <fx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;
            import mx.events.FlexEvent;
            private var mainXML:XML = <card>
                                         <product catalog="Thread Works">
                                            <name>AK E001</name>    
                                            <price>45</price>
                                            <path>assets\cards\AK_E001.jpg</path>
                                         </product>

                                         <product catalog="Paper Work">
                                             <name>AK E001</name>   
                                            <price>45</price>
                                            <path>assets\cards\AK_PP003.jpg</path>
                                         </product>

                                        <product catalog="Thread Works">
                                            <name>AK E002</name>    
                                            <price>50</price>
                                            <path>assets\cards\AK_E002.jpg</path>
                                         </product>
                                        </card>;

            protected function fetchHandler(event:MouseEvent):void
            {
                var productAC:ArrayCollection = new ArrayCollection();
                var productList:XMLList = mainXML.product.(@catalog == attributeNameTxt.text);
                for each(var item:XML in productList)
                {
                    productAC.addItem({name:String(item.name[0]),
                        price:String(item.price[0]),
                        path:String(item.path[0])});
                }
                trace(productAC);
            }

        ]]>
    </fx:Script>
    <s:layout>
        <s:HorizontalLayout/>
    </s:layout>
    <s:TextInput id="attributeNameTxt" text="Thread Works"/>
    <s:Button click="fetchHandler(event);"/>
</s:WindowedApplication>

IMPORTANT CODE : 
=================
mainXML.product.(@catalog == "Thread Works")
于 2011-09-08T07:50:43.323 に答える
0
function onXmlLoaded (e:Event):void 
{
    xml = XML(e.target.data);
    var xmlLength:Number  = xml.product.length();
    for(var i:uint = 0; i<xmlLength; i++)
    {
            dataContainer.push( {
            catalog : xml.product.@catalog,
            name :  xml..name,
            price : xml..price,
            path : xml..path
        });
    }
    for(i=0;i<dataContainer.length;i++)
    {
           if(dataContainer[i].catalog[0]== "your String"){
                 showName();
           }
    }
}
于 2011-09-08T06:31:12.627 に答える