2017-07-27 31 views
0

我有下面的例子。我想使用xpath从下面提取网址。网址不断变化,但文字“Url”和div类始终是相同的。是否有可能从只是文本“URL”和文字网址提取URL超出<a>如何获得带有旁边文本的URL的xpath?

<div class="Dataset"> 
"data1 : value1" 
<br> 
"data2: value2" 
<br> 
    "Url :" 
    <a href="http://somechangingurl.com"/> 
<br> 
"data3: value3" 
<br> 
"data4: value4" 
</div> 
+0

你可以使用正则表达式来得到结果。 – Webinion

+0

在网上找到一块蛋糕..这里是一个很好的[示例](https://stackoverflow.com/questions/21455349/xpath-query-get-attribute-href-from-a-tag)。 – Yolo

回答

0

我解决它自己。以下是我所做的。

//div[@class="Dataset"]/text()[contains(.,'Url :')]/following-sibling::a/@href 
0

虽然我认为XPath是去获取URL,因为你想前面的文本的好办法,我会去一个正则表达式:

$re = '/"(.+)"\s+<a href="(.+)"/'; 
$str = '<div class="Dataset"> 
"data1 : value1" 
<br> 
"data2: value2" 
<br> 
    "Url :" 
    <a href="http://somechangingurl.com"/> 
<br> 
"data3: value3" 
<br> 
"data4: value4" 
</div>'; 

preg_match($re, $str, $matches, PREG_OFFSET_CAPTURE, 0); 

// Print the entire match result 
var_dump($matches);