【问题标题】:Flex XML Tag Attribute Value / Property ParsingFlex XML 标签属性值/属性解析
【发布时间】:2010-09-24 09:24:03
【问题描述】:

我会尝试以一种有意义的方式问这个问题。

我有一个 RSS 提要,在 Flex 中我通过 HTTPService 连接到提要,XML 结构如下(不准确,但出于问题的目的)。我能够遍历 xml 并成功访问标题和链接节点中的数据,但是当我获得描述节点并尝试访问其中的 img 和 src 属性时,我没有任何成功。阅读关于使用 e4x 解析的示例是:

var xList:XMLList = xData.channel.item.description.(attribute("src"));

var xList:XMLList = xData.channel.item.description.(@src);

我现在迷路了,不知道我从这里去哪里,并且希望在这一点上找到一些方向。

<rss>
<channel>
    <item>
        <title><![CDATA[some text]]></title>
        <link><![CDATA[a link]]></link>
        <description><![CDATA[<table border="0" cellpadding="8"><tr><td width="80px"><a href="http://anAddress"><img border="0" src="http://anAddress.jpg"></a></td><td><strong>someText</strong><br>someText<br>someText<br><a href="http://anAddress">someText</a> | <a href="http://anAddress">someText</a></td></tr></table>]]></description>
    </item>
</channel>

<fx:Script>
    <![CDATA[

        [Bindable]
        private var xData:XML;

        import mx.events.FlexEvent;
        import mx.rpc.events.ResultEvent;

        protected function appCompleteHandler(event:FlexEvent):void{
            myService.send();
        }

        private function getList():void{
            var xList:XMLList = xData.channel.item.description;
            output.text = xList.toString();
        }

        private function rssResult(event:ResultEvent):void{
            xData = event.result as XML;
        }

    ]]>
</fx:Script>

    <s:controlBarContent>
    <s:Button label="Get List" click="getList()"/>
    <s:Button label="Change Data"/>
</s:controlBarContent>
<s:TextArea id="output" width="100%" height="100%"
    text="{xData.toString()}" fontSize="16"/>

【问题讨论】:

    标签: xml parsing apache-flex


    【解决方案1】:

    看起来它是描述节点中的 CDATA。包含在 CDATA 中的任何内容都不会被解析,而只会被视为文本。如果您可以控制数据,则可以尝试摆脱 CDATA 标记。否则,您可以再次重新解析描述文本,执行以下操作:

    var descXml:XML = new XML(xData.channel.item.description.toString());
    trace(descXml..@src);
    

    但是,我现在看到描述中的 html 内容无效,我猜这就是为什么首先将 CDATA 扔在那里的原因。如果您无法控制该内容(关闭 img 和 br 标签),您可以尝试使用一点正则表达式来抓取 src 属性。

    【讨论】:

      猜你喜欢
      • 2012-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多