AS3从XML中删除名称空间

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AS3从XML中删除名称空间相关的知识,希望对你有一定的参考价值。

If you don't deal with namespaces in XML correctly they can break your parsing in AS3. One way of getting around this is to remove the namespace from the XML a using regular expression.
  1. package {
  2.  
  3. import flash.display.MovieClip;
  4. import flash.net.URLLoader;
  5. import flash.net.URLRequest;
  6. import flash.net.URLLoaderDataFormat;
  7. import flash.events.Event;
  8. import flash.events.IOErrorEvent;
  9.  
  10. public class Main extends MovieClip {
  11.  
  12. public function Main() {
  13. var xmlLoader:URLLoader = new URLLoader();
  14. xmlLoader.dataFormat = URLLoaderDataFormat.TEXT;
  15. xmlLoader.addEventListener(Event.COMPLETE, onXmlLoader_COMPLETE);
  16. xmlLoader.addEventListener(IOErrorEvent.IO_ERROR , onXmlLoader_IO_ERROR);
  17. xmlLoader.load(new URLRequest("data.xml"));
  18. }
  19.  
  20. private function onXmlLoader_COMPLETE(e:Event):void
  21. {
  22. var myXml:XML = new XML(e.target.data);
  23. var myXmlStr:String = myXml.toString();
  24. var xmlnsPattern:RegExp = new RegExp("xmlns[^"]*"[^"]*"", "gi");
  25. myXmlStr = myXmlStr.replace(xmlnsPattern, "");
  26. myXml = new XML(myXmlStr);
  27. trace(myXml.message);
  28. }
  29.  
  30. private function onXmlLoader_IO_ERROR(event:IOErrorEvent):void
  31. {
  32. trace("onXmlLoader_IO_ERROR()");
  33. trace("event.text: "+String(event.text));
  34. }
  35.  
  36. }
  37. }
  38.  
  39. ///////////////////////////////////////////////////////////////////
  40. // The 'data.xml' looks like this ...
  41. //
  42. // <?xml version="1.0" encoding="utf-8" ?>
  43. // <root xmlns="http://www.adrianparr.com">
  44. // <message>Hello World</message>
  45. // </root>
  46. //
  47. //
  48. // And the output will be ...
  49. //
  50. // Hello World

以上是关于AS3从XML中删除名称空间的主要内容,如果未能解决你的问题,请参考以下文章

删除所选项目列表框AS3

如何从xslt输出xml中删除xmlns =“”?

复制 Xml as3 失败

从 xml 片段中删除 html 标签? [复制]

如何在 Java 中删除 XML 命名空间

ActionScript 3 AS3处理XML节点名称中的破折号