加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flex中处理带命名空间的XML

发布时间:2020-12-15 01:07:14 所属栏目:百科 来源:网络整理
导读:对包含自定义命名空间的XML 进行分析是比较困难的,它要求该命名空间一定要在任何XML 返回前被申明,同时要在该命名空间内进行分析。比如对于以下的一个xml: test.xml view plain ?xml?version= "1.0" ??? soap:Envelope?? xmlns:soap= "http://www.w3.org/20

对包含自定义命名空间的XML 进行分析是比较困难的,它要求该命名空间一定要在任何XML 返回前被申明,同时要在该命名空间内进行分析。比如对于以下的一个xml:

test.xml

view plain
  1. <?xml?version="1.0"?>??
  2. <soap:Envelope??
  3. xmlns:soap="http://www.w3.org/2001/12/soap-envelope"??
  4. soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">??
  5. <soap:Body?xmlns:m="http://www.example.org/stock">??
  6. <m:PriceResult>??
  7. <m:Price>34.5</m:Price>??
  8. </m:PriceResult>??
  9. </soap:Body>??
  10. </soap:Envelope>??

在Applicaiton中如下:

<?xml?version="1.0"?encoding="utf-8"?>??
  • <mx:Application?xmlns:mx="http://www.adobe.com/2006/mxml"?layout="absolute"?xmlns:local="*">??
  • ????<mx:Script>??
  • ????????<!--[CDATA[??
  • ????????????import?mx.rpc.events.ResultEvent;??
  • ??????????????
  • ????????????//load?the?xml??
  • ????????????private?function?loadXML():void??
  • ????????????{??
  • ????????????????https.send();??
  • ????????????}??
  • ????????????private?function?doResult(evt:ResultEvent):void??
  • ????????????{??
  • ????????????????var?xml:XML?=?evt.result?as?XML;??
  • ??????????????????
  • ????????????????//这样可以取得正确结果??
  • ????????????????namespace?w3c?=?"http://www.w3.org/2001/12/soap-envelope";??
  • ????????????????use?namespace?w3c;??
  • namespace?m?=?"http://www.example.org/stock";??
  • namespace?m;??
  • ????????????????lbl.text?=?xml.w3c::Body.m::PriceResult.m::Price;??
  • //这样取不到正确结果??
  • //??????????????lbl.text?=?xml.Body.PriceResult.Price;???
  • ????????]]-->??
  • ????</mx:Script>??
  • ????<mx:Button?x="297"?y="289"?label="Button"?click="loadXML()"/>??
  • ????<mx:HTTPService?id="https"?url="test.xml"?result="doResult(event)"?resultFormat="e4x"/>??
  • ????<mx:Label?x="212"?y="198"?text="显示结果:"/>??
  • ????<mx:Label?x="291"?y="198"?width="132"?id="lbl"/>??
  • </mx:Application>???
  • 注意代码中:

    namespace?w3c?=?"http://www.w3.org/2001/12/soap-envelope";??
  • ?namespace?w3c;??
  • namespace?m?=?"http://www.example.org/stock";??
  • namespace?m;??
  • 如果没有这些代码的话是不能得到正确结果的,大家可以测试以下,新建一个工程,然后把以上代码copy过去就可以了。在Flex3CookBook中有提到这个问题

    (编辑:李大同)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

      推荐文章
        热点阅读