2

我正在加载一个 smil 文件(遵循 xml 格式),它不会让我通过名称(例如xml.body)选择属性,而是我只能通过xml.child(0).

我试过了xml.child('body'),但仍然没有。有人知道快速解决方法吗?我希望能够访问xml.head.(@name=='rtmpPlaybackbase')和 XMLListxml.body.switch.video

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
<head>
   <meta name="title" content="myStream"/>
   <meta name="httpBase" content="http://mydomain.com/"/>
   <meta name="rtmpPlaybackBase" content="http://mydomain.com/"/>
</head>
<body>
   <switch>
      <video src="myStream500K@54552" system-bitrate="500000"/>
      <video src="myStream900K@54552" system-bitrate="900000"/>
      <video src="myStream1500K@54552" system-bitrate="1500000"/>
   </switch>
</body>

非常感谢!

4

1 回答 1

4

首先,关闭你的开始标签,最后用 . 假设你现在有这样的:

var xml:XML = new XML('<smil xmlns="http://www.w3.org/2001/SMIL20/Language"><head><meta name="title" content="myStream"/><meta name="httpBase" content="http://mydomain.com/"/><meta name="rtmpPlaybackBase" content="http://mydomain.com/"/></head><body><switch><video src="myStream500K@54552" system-bitrate="500000"/><video src="myStream900K@54552" system-bitrate="900000"/><video src="myStream1500K@54552" system-bitrate="1500000"/></switch></body></smil>');

然后,如果您跟踪 xml.body 的长度,它会给出 0。

trace(String(xml.body).length); //traces 0

这主要是因为您必须使用 xml 命名空间:

var ns:Namespace = new Namespace("http://www.w3.org/2001/SMIL20/Language");

现在使用这个命名空间来访问 xml 中的标签:

trace(String(xml.ns::body).length); //traces 272

xml.ns::TAGNAME如何达到它也是如此。

希望这可以帮助。

于 2011-05-10T15:20:40.463 回答