Php 如何获得<;a href=仅具有类名的div中的值?

Php 如何获得<;a href=仅具有类名的div中的值?,php,parsing,dom,href,Php,Parsing,Dom,Href,我试图在类名为(class=“visible xs”)的div中获取href的值。我尝试了这段代码,它也得到了我不想要的所有href-outside-div $dom = new DOMDocument; $dom->loadHTML($code2); foreach ($dom->getElementsByTagName('a') as $node) { echo $node->getAttribute("href")."\n"; } 然后我尝试了以下操作,但它给出了错

我试图在类名为(class=“visible xs”)的div中获取href的值。我尝试了这段代码,它也得到了我不想要的所有href-outside-div

$dom = new DOMDocument;
$dom->loadHTML($code2);
foreach ($dom->getElementsByTagName('a') as $node)
{

 echo $node->getAttribute("href")."\n";
}
然后我尝试了以下操作,但它给出了错误(致命错误:调用..中未定义的方法DOMDocument::GetElementsByCassName()):

有谁能帮我修复上面的错误,只获取类名为visible xs的href inside div的值吗?谢谢

样本数据:

<tr class="ng-scope" ng-repeat="item in itemContent">
<td class="ng-binding" style="word-wrap: break-word;">test/folder/1.mp4
<div class="visible-xs" style="padding-top: 10px;">
<!-- ngIf: item.isViewable --> class="btn btn-default ng-scope" ng-click="$root.openView(item);">View</a><!-- end ngIf: item.isViewable -->
<a href="https://somesite.com/test/1.mp4" class="btn btn-default" ng-href="https://somesite.com/test/1.mp4" target="_blank">Download</a>
<a class="btn btn-default" href="javascript:void(0);" ng-click="item.upload()" target="_blank">Upload</a>
</div>
</td>
<!-- ngIf: hasViewables --><td class="text-right hidden-xs ng-scope" style="white-space: nowrap; width: 60px;" ng-if="hasViewables">
<!-- ngIf: item.isViewable -->class="btn btn-default ng-scope" ng-click="$root.openView(item);">View</a><!-- end ngIf: item.isViewable -->
</td><!-- end ngIf: hasViewables -->
<td class="text-right hidden-xs" style="white-space: nowrap; width: 250px;">
<a href="https://somesite.com/test/1.mp4" class="btn btn-default" ng-href="https://somesite.com/test/1.mp4" target="_blank">Download</a>
javascript:void(0);" ng-click="item.upload()" target="_blank">Upload</a>
</td>
</tr>

测试/文件夹/1.mp4
class=“btn btn default ng scope”ng click=“$root.openView(item);”>View
class=“btn btn default ng scope”ng click=“$root.openView(item);”>View
javascript:void(0);“ng click=“item.upload()”target=“\u blank”>上传

没有
GetElementsByCassName
函数。在div上迭代,检查类,如果匹配,则拉出内部链接并输出所需的
href
s(如果第一次匹配后要停止,则中断)

演示:


使用
break
的示例。

没有
getElementsByClassName
函数。在div上迭代,检查类,如果匹配,则拉取内部链接并输出所需的
href
s(如果第一次匹配后要停止,则中断)

演示:


break
,示例。

谢谢您的回复。您能给我一个如何使用xpath的示例吗?我尝试了以下内容,但没有数据:$doc=new-DOMDocument();@$doc->loadHTML($code2);$xpath=new-DomXPath($doc);foreach($xpath->->查询('//div[class=“visible xs”]//a[@href]')作为$link){$echo$link->->('href');}div类名是可见的xs,我在第一篇文章中更新了示例数据。不幸的是,数据是这样显示的。数据来自远程网站,我无法控制它如何显示数据!我只想获取此行的href值“class=”btn btn default“ng href=”target=“\u blank”>下载javascript:void(0);“ng click=“item.upload()”target=“_blank”>上传感谢您的回复。您能给我一个如何使用xpath的示例吗?我尝试了以下内容,但没有数据:$doc=new DOMDocument();@$doc->loadHTML($code2);$xpath=new DomXPath($doc);foreach($xpath->->->query('//div[class=“visible xs”]//[@href]')作为$link){echo$link->getAttribute('href');}div类名是可见的xs,我在第一篇文章中多次更新了示例数据。不幸的是,数据是这样显示的。数据来自远程网站,我无法控制它如何显示数据!我只想获取此行的href值“类”=“btn btn default”ng href=”“target=“\u blank”>下载javascript:void(0);“ng click=“item.upload()”target=“\u blank”>上传非常感谢。该演示帮助了我很多,但我如何可以忽略的href值?(我的错误我忘记更正示例数据)当然,你可以使用
strpos
preg_match
来阻止
href
javascript。请按照我为该类检查的方式执行。非常感谢。该演示帮助了我很多,但我如何可以忽略的href值?(我的错误,我忘了更正示例数据)当然你可以使用
strpos
preg_match
来阻止
href
中的
javascript
。按照我为类检查的方法执行。
<tr class="ng-scope" ng-repeat="item in itemContent">
<td class="ng-binding" style="word-wrap: break-word;">test/folder/1.mp4
<div class="visible-xs" style="padding-top: 10px;">
<!-- ngIf: item.isViewable --> class="btn btn-default ng-scope" ng-click="$root.openView(item);">View</a><!-- end ngIf: item.isViewable -->
<a href="https://somesite.com/test/1.mp4" class="btn btn-default" ng-href="https://somesite.com/test/1.mp4" target="_blank">Download</a>
<a class="btn btn-default" href="javascript:void(0);" ng-click="item.upload()" target="_blank">Upload</a>
</div>
</td>
<!-- ngIf: hasViewables --><td class="text-right hidden-xs ng-scope" style="white-space: nowrap; width: 60px;" ng-if="hasViewables">
<!-- ngIf: item.isViewable -->class="btn btn-default ng-scope" ng-click="$root.openView(item);">View</a><!-- end ngIf: item.isViewable -->
</td><!-- end ngIf: hasViewables -->
<td class="text-right hidden-xs" style="white-space: nowrap; width: 250px;">
<a href="https://somesite.com/test/1.mp4" class="btn btn-default" ng-href="https://somesite.com/test/1.mp4" target="_blank">Download</a>
javascript:void(0);" ng-click="item.upload()" target="_blank">Upload</a>
</td>
</tr>
$dom = new DOMDocument;
libxml_use_internal_errors(true);
$dom->loadHTML($html);
libxml_clear_errors();
foreach ($dom->getElementsByTagName('div') as $div) {
     if($div->getattribute('class') == 'visible-xs') {
          foreach($div->getElementsByTagName('a') as $link) {
               echo $link->getattribute('href');
          }
     }
}