2014-01-30 5 views
19

Я хочу использовать XPath для получения атрибута href из a -tag, но он имеет два входа в одном файле. Как я лажу? мне нужно проверить, есть ли href атрибут со значением $ улицы/объектом, у меня есть этот код и он не работает:XPath Query: получить атрибут href из тега

$product_photo  = $xpath->query("//a[contains(@href,'{$object_street}fotos/')][1]"); 
     $product_360  = $xpath->query("//a[contains(@href,'{$object_street}360-fotos/')][1]"); 
     $product_blueprint = $xpath->query("//a[contains(@href,'{$object_street}plattegrond/')][1]"); 
     $product_video  = $xpath->query("//a[contains(@href,'{$object_street}video/')][1]"); 

Это ничего не возвратится. Кто может мне помочь?

ответ

42

Для следующего HTML-документа:

<html> 
    <body> 
    <a href="http://www.example.com">Example</a> 
    <a href="http://www.stackoverflow.com">SO</a> 
    </body> 
</html> 

XPath запрос /html/body//a/@href (или просто //a/@href) возвращает:

 
    http://www.example.com 
    http://www.stackoverflow.com 

Чтобы выбрать конкретный экземпляр использовать /html/body//a[N]/@href,

 
    $ /html/body//a[2]/@href 
    http://www.stackoverflow.com 

Чтобы проверить строки, содержащиеся в атрибуте Ют и вернуть сам атрибут поместить проверку тега не на атрибут:

 
    $ /html/body//a[contains(@href,'example')]/@href 
    http://www.example.com 

Смешивание два:

 
    $ /html/body//a[contains(@href,'com')][2]/@href 
    http://www.stackoverflow.com 
+0

** EDIT: ** Как я могу проверить для конкретного атрибута HREF? Должен ли я использовать '/ html/body // a [1]/@ href = '{$ object_street}/x''? – user3239713

+0

Огромное спасибо за усилия! К сожалению, у меня все еще есть проблемы, я полагаю, что это неверный запрос. Не возражаете ли вы взглянуть на процедурный код для меня и поставить меня на правильный путь? Потому что, если это так, я отправлю код. – user3239713

+0

Убедитесь, что ваш запрос правильно оценивает {$ object_street}, возможно, сначала помещает его в строку, как в строке s = // a [содержит (@href, '{$ object_street} fotos /')] [1]/@href "и проверьте, что' '' выглядит в порядке. – mockinterface

Смежные вопросы