2011-11-21 14 views
1

我在我的代碼中使用了xpath查詢時遇到了一些麻煩,我想我會拋出這個問題並詢問社區,如果這個查詢實際上是爲其預期目的而正確制定的​​。如下面的代碼所示,我期望獲取標籤的href屬性中唯一的MP3 URL。這整個HTML的一部分被作爲一個字符串輸入到xpath中。這是適當的xpath查詢語句來獲取此HTML字符串中唯一的MP3 href?

XPath查詢:

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

送入查詢HTML:

<img class="myclass" title="mytitle" src="http://www.mydomain.com/myfolder/mypic.jpg" alt="myalt" width="552" height="414" /> 

[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 
+1

您可以使用螢火蟲或firepath插件的Firefox獲取任何元素的'xpath'網頁上 – RanRag

回答

3

這可能是罰款,你的投入,但它會在href屬性,這是在任何地方匹配mp3可能不是你想要的。更嚴格的方法將只匹配以.mp3結尾的字符串。就像這樣:

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

這雖然抓住href值?而不是屬性本身? – lukas56z

+1

@virtuapete - 它選擇屬性本身。您的主機語言將決定該對象是什麼。那是PHP嗎?如果是這樣,你可能會得到這樣的一個實例:http://www.php.net/manual/en/class.domattr.php –

+0

我想獲得href屬性的值,在我的情況下是字面值MP3的URL ...我需要從查詢返回URL本身。是的,這是PHP 5.3.x – lukas56z

相關問題