得到' lang'使用XPath

时间:2015-05-19 21:07:20

标签: php html curl xpath attributes

我试图获得“朗”的价值。 HTML标记中的属性(使用cURL获取,这一切都很顺利)。超级清理的HTML如下所示:

<html lang="en">
    <head>
        <title>Example</title>
    </head>
    <body></body>
</html>

当我使用时:

// Get HTML tag
$html = $xpath->query('//html');

echo '<pre>'. print_r($html, true) .'</pre>';

// Does a HTML tag exist at all?
if($html->length == 0) {
    $htmlUsed = false;
}

// If HTML tag exists get value
if($html->length > 0) {
    foreach($html as $tag) {
    echo '<pre>'. print_r($tag->attributes, true) .'</pre>';

        foreach($tag->attributes as $attribute) {
            echo $attribute;
        }
    }
}

打印:

DOMNodeList Object
(
    [length] => 1
)

DOMNamedNodeMap Object
(
    [length] => 0
)
  

如何在HTML元素中获取此属性的值?它存在于获取页面的cURL的$ response中(我在其上执行XPath查询)。注意:$ tag-&gt; getAttribute(&#39; lang&#39;)没有返回所需的结果,因为$ tag-&gt;属性似乎是空的。

1 个答案:

答案 0 :(得分:0)

这对我有用。

<?php
$doc = new DOMDocument();
$doc->loadHTML('<html lang="en">
    <head>
        <title>Example</title>
    </head>
    <body></body>
</html>');
$xpath = new DOMXPath($doc);
$html = $xpath->query('//html');
echo '<pre>'. print_r($html, true) .'</pre>';
// Does a HTML tag exist at all?
if($html->length == 0) {
    $htmlUsed = false;
}
// If HTML tag exists get value
if($html->length > 0) {
    foreach($html as $tag) {
        echo $tag->getAttribute('lang');
    }
}

输出:

  

DOMNodeList Object
(
    [length] => 1
)