SMIL 文件 xml 对 e4x 不友好?

发布于 2024-11-06 09:05:50 字数 878 浏览 5 评论 0原文

我正在加载 smil 文件(遵循 xml 格式),它不允许我通过名称选择属性(例如 xml.body),而是只能通过 访问数据xml.child(0)

我已经尝试过 xml.child('body'),但仍然没有任何结果。有人知道快速解决方法吗?我希望能够访问 xml.head.(@name=='rtmpPlaybackbase') 和 XMLList xml.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>

非常感谢!

I'm loading in a smil file (follows the xml format) and it won't let me select properties via name (eg. xml.body) instead I can only access the data by xml.child(0).

I've tried xml.child('body'), but still nothing. Anyone know a quick workaround? I would like to be able to access xml.head.(@name=='rtmpPlaybackbase') and the XMLList xml.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>

Many Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

写下不归期 2024-11-13 09:05:50

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

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 是您实现它的方式。

希望这有帮助。

First of all, close your start tag , in the end with . Let's say you have it now like this:

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>');

Then if you trace the length of xml.body, it gives 0.

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

This is mainly because you have to use xml namespace:

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

Now use this namespace to reach your tags in the xml:

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

So xml.ns::TAGNAME is how you reach it.

Hope this helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文