如何使用PHP xpath获取所有属性?
给定以下HTML字符串:如何使用PHP xpath获取所有属性?,php,xpath,Php,Xpath,给定以下HTML字符串: <div class="example-class" data-caption="Example caption" data-link="https://www.example.com" data-image-url="https://example.com/example.jpg"> </div> 我知道如何获得个人属性,但我希望一下子就能做到。以下是我目前拥有的: function get_data($html = '') {
<div
class="example-class"
data-caption="Example caption"
data-link="https://www.example.com"
data-image-url="https://example.com/example.jpg">
</div>
我知道如何获得个人属性,但我希望一下子就能做到。以下是我目前拥有的:
function get_data($html = '') {
$dom = new DOMDocument();
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$nodes = $xpath->query('//div/@data-link');
foreach ($nodes as $node) {
var_dump($node);
}
}
谢谢 我认为这应该是你想要的——或者至少,给你继续的基础
define('BR','<br />');
$strhtml='<div
class="example-class"
data-caption="Example caption"
data-link="https://www.example.com"
data-image-url="https://example.com/example.jpg">
</div>';
$dom=new DOMDocument;
$dom->loadHTML( $strhtml );
$xpath=new DOMXPath( $dom );
$col=$xpath->query('//div');
if( $col ){
foreach( $col as $node ) if( $node->nodeType==XML_ELEMENT_NODE ) {
foreach( $node->attributes as $attr ) echo $attr->nodeName.' '.$attr->nodeValue.BR;
}
}
$dom = $col = $xpath = null;
define('BR','
');
$strhtml='10〕
';
$dom=新的DOMDocument;
$dom->loadHTML($strhtml);
$xpath=newdomxpath($dom);
$col=$xpath->query('//div');
如果($col){
如果($node->nodeType==XML\u元素\u节点),则foreach($col作为$node){
foreach($node->attributes as$attr)echo$attr->nodeName.''.$attr->nodeValue.BR;
}
}
$dom=$col=$xpath=null;
我认为这应该是你想要的——或者至少给你继续的基础
define('BR','<br />');
$strhtml='<div
class="example-class"
data-caption="Example caption"
data-link="https://www.example.com"
data-image-url="https://example.com/example.jpg">
</div>';
$dom=new DOMDocument;
$dom->loadHTML( $strhtml );
$xpath=new DOMXPath( $dom );
$col=$xpath->query('//div');
if( $col ){
foreach( $col as $node ) if( $node->nodeType==XML_ELEMENT_NODE ) {
foreach( $node->attributes as $attr ) echo $attr->nodeName.' '.$attr->nodeValue.BR;
}
}
$dom = $col = $xpath = null;
define('BR','
');
$strhtml='10〕
';
$dom=新的DOMDocument;
$dom->loadHTML($strhtml);
$xpath=newdomxpath($dom);
$col=$xpath->query('//div');
如果($col){
如果($node->nodeType==XML\u元素\u节点),则foreach($col作为$node){
foreach($node->attributes as$attr)echo$attr->nodeName.''.$attr->nodeValue.BR;
}
}
$dom=$col=$xpath=null;
在XPath中,可以使用@*
引用任何名称的属性,例如:
$nodes = $xpath->query('//div/@*');
foreach ($nodes as $node) {
echo $node->nodeName ." : ". $node->nodeValue ."<br>";
}
在XPath中,可以使用
@*
引用任何名称的属性,例如:
$nodes = $xpath->query('//div/@*');
foreach ($nodes as $node) {
echo $node->nodeName ." : ". $node->nodeValue ."<br>";
}
感谢这一点,当它起作用时,我选择另一张海报的答案是基于它的简单性和与我已有的答案的相似性。感谢这一点,当它起作用时,我选择另一张海报的答案是基于它的简单性和与我已有的答案的相似性。非常感谢。这很好——尽管在我的例子中,我将项目推送到如下数组:$myarray=array()$myarray[$node->nodeName]=$node->nodeValue;谢谢。这很好——尽管在我的例子中,我将项目推送到如下数组:$myarray=array()$myarray[$node->nodeName]=$node->nodeValue;