Php 从li标记提取数据href
我正试图提取Php 从li标记提取数据href,php,laravel,domparser,Php,Laravel,Domparser,我正试图提取数据href的URL,但遇到了一些麻烦。它没有标签。所以我不知道如何获取数据href属性。网站位于此处:https://www.proud-web.jp/search/kansai/area/osaka/ 以下是我想要的数据: <div class="box-search-result"> <form action="/module/material/SiryoOrderTop.xphp" method="GET" name="favorit
数据href
的URL,但遇到了一些麻烦。它没有标签。所以我不知道如何获取数据href属性。网站位于此处:https://www.proud-web.jp/search/kansai/area/osaka/
以下是我想要的数据:
<div class="box-search-result">
<form action="/module/material/SiryoOrderTop.xphp" method="GET" name="favoritebox" target="_blank">
<ul class="list-search-result">
<li class="list-search-result-item" data-href="https://www.proud-web.jp/kansai/mansion/shimizudani/"
如何获取数据href
的URL?有什么想法吗?非常感谢。
顺便说一下,我正在使用DOMparser 您希望从每个
div
中获取li
元素,然后获取data href
属性。你只是想从部门里抢过来
$allDivs = $parser->getElementsByTagName('div');
foreach ($allDivs as $div) {
if ($div->getAttribute('class') == 'box-search-result') {
$allLi = $div->getElementsByTagName('li');
foreach ($allLi as $li){
$linkRef = $li->getAttribute('data-href');
var_dump($linkRef);
}
}
}
我不能100%确定domParser的语法,但问题与您获取div
而不是li
是一样的。您可能需要循环检查$div
变量的childNodes
属性,并检查nodeName
是否为ul
,然后循环查找li
的childNodes
属性作为nodeName
例如
$allDivs = $parser->getElementsByTagName('div');
foreach ($allDivs as $div) {
if ($div->getAttribute('class') == 'box-search-result') {
foreach($div->childNodes as $node) {
if($node->nodeName == 'ul') {
foreach($node->childNodes as $liNode) {
if ($liNode->nodeName == 'li') {
$linkRef = $liNode->getAttribute('data-href');
var_dump($linkRef);
}
}
}
}
}
}
您希望从每个
div
中获取li
元素,然后获取data href
属性。你只是想从部门里抢过来
$allDivs = $parser->getElementsByTagName('div');
foreach ($allDivs as $div) {
if ($div->getAttribute('class') == 'box-search-result') {
foreach($div->childNodes as $node) {
if($node->nodeName == 'ul') {
foreach($node->childNodes as $liNode) {
if ($liNode->nodeName == 'li') {
$linkRef = $liNode->getAttribute('data-href');
var_dump($linkRef);
}
}
}
}
}
}