Php 如何使用DOMXPath从HTML文档检索所有链接
我有这个密码Php 如何使用DOMXPath从HTML文档检索所有链接,php,xml,dom,xpath,Php,Xml,Dom,Xpath,我有这个密码 <?PHP $content = '<html> <head> <title></title> </head> <body> <ul> <li style="border:0px" class="list" id="list1111"> <a
<?PHP
$content = '<html>
<head>
<title></title>
</head>
<body>
<ul>
<li style="border:0px" class="list" id="list1111">
<a href="http://www.example.com/" style="font-size:10px" class="mylinks">
<img src="logo.gif" width="235" height="97" alt="logo example" border="0"/>
</a>
</li>
<li style="border:0px" class="list" id="list2222">
<a href="http://www.example.com/2222222" class="mylinks">
second link
</a>
</li>
</ul>
</body>
</html> ';
$doc = new DOMDocument;
$doc->loadhtml($content);
$xpath = new DOMXPath($doc);
$hrefs = $xpath->evaluate("/html/body//a");
for ($i = 0; $i < $hrefs->length; $i++) {
$href = $hrefs->item($i);
$url = $href->getAttribute('href');
echo $url ."<br />";
}
?>
我希望对每个锚标记从顶层迭代到最底层,并且我希望能够检索每个标记的属性
这对我来说非常困难,因为“DOMXPath”:(不过对你们中的一些人来说可能很容易
你有什么问题吗
你知道如何解决这个问题吗
提前感谢XPath应该可以让您无需迭代。要提取
li
的重要属性,请使用XPath,如:
//li/@class
或
这应该会给你一个你可以使用的合适的对象
这里有一些关于的更多信息,也许您应该编写一个简单的XSLT样式表。匹配
标记,然后祖先:*将提供所有父节点,子节点:*将提供所有子节点-通过XSLT使用简单的XPath语法将有更大的能力。谢谢,我不仅仅是寻找标记的属性我要找的最重要的事情是找到“锚”标签的父母和孩子。你可以考虑使用“父::”和“子::‘轴’来进行你的迭代。
//li/@class
//li/@id