2017-07-27 11 views
0

Ich habe unter Beispiel. Ich möchte URL von unten mit XPath extrahieren. Die URL ändert sich ständig, aber der Text "Url" und die Klasse "div" ist immer gleich. Ist es möglich, URL aus nur den Text „URL“ und den Text URL zu extrahieren ist außerhalb <a>Wie bekomme ich XPath für URL mit einem Text neben?

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

Sie können Regex verwenden, um ein Ergebnis zu erhalten. – Webinion

+0

Stück Kuchen im Netz zu finden .. hier ist ein gutes [Beispiel] (https://stackoverflow.com/questions/21455349/xpath-query-get-attribute-href-from-a-tag). – Yolo

Antwort

0

Ich löste es selbst. Unten ist was ich getan habe.

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

Obwohl ich glaube, dass XPath ein guter Weg ist, um die URL zu gehen zu bekommen, da Sie den vorhergehenden Text mögen, Ich würde für eine Regex gehen:

$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); 
Verwandte Themen