2014-07-11 2 views
0

안녕하세요, 저는 여기에서 문제가 있습니다. PHP에서 XPath를 사용하여 속성 중 하나에있는 요소를 기반으로 요소를 선택하고 싶습니다. 여기에 의미하는 바가 있습니다.PHP XPath는 요소 값을 기준으로 요소를 선택합니다.

<a href="/example.php?id=6&q=h">Link1</a> 
<a href="/example.php?id=4&q=s">Link1</a> 
<a href="/example.php?id=3&q=d">Link1</a> 
<a href="/example.php?id=9&q=h">Link1</a> 
<a href="/example.php?id=7&q=f">Link1</a> 
<a href="/example.php?id=8&q=h">Link1</a> 

그래서 100 개의 링크가있는 전체 페이지 인 것처럼 가장합니다. 나는 q = h 인 사람들 만 추출하고 싶다. 나는 모든 태그를 반복 할 수 있고 if 문을 사용하여 q = h가 있는지 확인할 수 있습니다. 그러나 수백 개의 링크가있는 경우에는 그렇게 효율적이지 않습니다. 감사합니다

+0

할 것입니다,하지만 당신이 할 수있는 [이] (http://www.xpathtester.com/xpath/b5e9182f6dde71a550affe71cbcfd958). – sgbj

+0

@sbat 그게 내가 찾고 있던 바로 그거야! 정말 고맙습니다! – user3674778

답변

0

나는 개인적으로 그것은 절대 안전한 해결책이 아니다이

<?php 

$htmlC = '<a href="/example.php?id=6&q=h">Link1</a> 
<a href="/example.php?id=4&q=s">Link1</a> 
<a href="/example.php?id=3&q=d">Link1</a> 
<a href="/example.php?id=9&q=h">Link1</a> 
<a href="/example.php?id=7&q=f">Link1</a> 
<a href="/example.php?id=8&q=h">Link1</a>'; 

$dom = new DOMDocument(); 
@$dom->loadHTML($htmlC); 
$xpath = new DOMXpath($dom); 

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

foreach($query as $link){ 
//do what you need 
} 

?> 
관련 문제