对于解析XSPF文档,规范规定一个<track>
元素可以有零个或多个<location>
元素来定义要呈现的资源的 URI。例如:
<?xml version="1.0" encoding="UTF-8"?>
<playlist version="1" xmlns="http://xspf.org/ns/0/">
<trackList>
<track>
<location>http://example.com/song_1.ogg</location>
<location>http://mirror.xyz/example.com/song_1.ogg</location>
</track>
<track>
<location>http://example.com/song_2.ogg</location>
<location>http://example.com/song_2.mp3</location>
</track>
</trackList>
</playlist>
我的问题是这是否允许:
同类型资源的多个位置(例如,原始源和镜像中的 MP3 文件)如上面的 song_1 中的?
还是针对不同类型的资源(例如,使用多个位置来提供 Ogg Vorbis 和 MP3 版本的曲目),如上面的 song_2 中?
或者两者兼而有之?
目前 VLC 和 Audacious 都使用a 中<location>
提供的最后一个<track>
,即使它不可用。因此他们似乎只是使用了最后一个<location>
元素,这似乎不是规范的意图。无论哪种方式,他们都不会执行我上面列出的任何解决案例。
显然,如何解释这些位置会改变<track>
包含<location>
元素的元素解析器的预期行为。第一种情况提供了一个很好的后备解决方案。对我来说更有趣的是,第二种情况简化了需要 2 个播放列表的情况,1 个用于 Ogg Vorbis,1 个用于 MP3 版本的曲目,例如 M3U 和 PLS 必须这样做。
因此:是否有标准或推荐的行为来处理/解析XSPF<location>
中单个元素的多个元素?<track>
谢谢