这是获取此 HTML 字符串中唯一的 MP3 href 的正确 xpath 查询语句吗?

Posted

技术标签:

【中文标题】这是获取此 HTML 字符串中唯一的 MP3 href 的正确 xpath 查询语句吗?【英文标题】:Is this the proper xpath query statement to grab the only MP3 href in this HTML string? 【发布时间】:2012-01-02 15:35:01 【问题描述】:

我在我的代码中使用的 xpath 查询遇到了一些问题,我想我会把它扔在那里并询问社区这个查询实际上是否正确地用于其预期目的。如下代码所示,我希望在 a 标签的 href 属性中获取唯一的 MP3 URL。这整段 html 以字符串形式输入 xpath。

xpath 查询:

$hrefs = $xpath->query("//a[contains(@href,'mp3')]/@href");

输入查询的 HTML:

<img class="myclass" title="mytitle" src="http://www.mydomain.com/myfolder/mypic.jpg"    />

[be-linked-title-info]

<a title="mytitle" href="https://s3.amazonaws.com/myfolder/published/RJD2+-+SEVEN+LIGHT+YEARS+(INSTRUMENTAL).mp3">Song Name and Artist</a>

The written plain text post entry describing this music track goes here and says blah blah blah

【问题讨论】:

您可以使用firebug或firefox插件获取网页上任意元素的xpath 【参考方案1】:

这对您的输入可能没问题,但它将匹配 href 属性中的任何位置的 mp3,这可能不是您想要的。更严格的方法将只匹配以.mp3 结尾的字符串。像这样:

//a['.mp3' = substring(@href, string-length(@href) - 
                              string-length('.mp3') + 1)]/@href

【讨论】:

这是否获取了 href 值?而不是属性本身? @virtuapete - 它正在选择属性本身。您的宿主语言将确定该对象是什么。那是php吗?如果是这样,您可能会得到一个这样的实例:php.net/manual/en/class.domattr.php 我正在尝试获取 href 属性的值,在我的例子中是 MP3 的文字 URL...我需要从查询中返回 URL 本身。是的,这是 PHP 5.3.x @virtuapete - 您的宿主语言决定了您返回的对象。属性不仅仅是它的值,因为它显然也有一个名称。请参阅我之前发布的链接。

以上是关于这是获取此 HTML 字符串中唯一的 MP3 href 的正确 xpath 查询语句吗?的主要内容,如果未能解决你的问题,请参考以下文章

使用 html5 文件系统 api 获取本地 mp3 文件的元数据

QMediaPlayer.setPosition 如何适用于 mp3?

从 mp3 文件中获取专辑封面?

如何从字符串中获取子字符串并将另一个字符串附加到字符串并将其转换为数组

如何使用javascript在特定播放点获取mp3的音量

mediaelement.js MP3无法播放