php - 如何检索div标签属性值

时间:2012-02-28 08:03:39

标签: php html html-parsing

我有一个可以隐藏或不隐藏的div,具体取决于用户。该div有一个名为'attrLoc'的属性。我想要的是能够从PHP中检索该属性值。希望有人能提供帮助。提前感谢您的回复。干杯。马克。

我的HTML:

<div id="btn-loc" class="hidden" attrLoc="1">
...
</div>

5 个答案:

答案 0 :(得分:9)

XPath查询XML结构的标准。

但是,请注意,如果您要解析来自不受信任来源的HTML,这是HTML格式不完整的来源,您应该更喜欢DOMDocument::loadHTML()SimpleXML个变体,特别是{{ 3}}

例如

<?php
$html = '
<div id="btn-loc" class="hidden" attrLoc="1">
  ...
</div>';

$doc = DOMDocument::loadHTML($html);
$xpath = new DOMXPath($doc);
$query = "//div[@id='btn-loc']";
$entries = $xpath->query($query);
foreach ($entries as $entry) {
  echo "Found: " . $entry->getAttribute("attrloc");
}

希望它有所帮助!

答案 1 :(得分:4)

在JavaScript中使用jQuery

var state = $('#btn-loc').attr('attrLoc');

然后你可以将值发送给PHP

编辑:

如果您正在使用PHP中的HTML页面/ DOM,您可以使用SimpleXML遍历DOM并以此方式提取属性

$xml = simplexml_load_string(
    '<div id="btn-loc" class="hidden" attrLoc="1">
    ...
    </div>'
);

foreach (current($xml->xpath('/*/div'))->attributes() as $k => $v)
{
    var_dump($k,' : ',$v,'<br />');
}

您将看到转储属性的名称和值

id : btn-loc
class : hidden
attrLoc : 1

答案 2 :(得分:2)

您也可以使用Document Object Model

<?php
$str = '<div id="btn-loc" class="hidden" attrLoc="1">
text
</div>';
$doc = new DOMDocument();
$d=$doc->loadHtml($str);
$a = $doc->getElementById('btn-loc');
var_dump($a->getAttribute('attrloc'));

答案 3 :(得分:1)

使用php执行此操作使用简单的html dom解析器。 有一点学习曲线,但有点有用

http://simplehtmldom.sourceforge.net/

答案 4 :(得分:1)

这个怎么样

$str = '<div id="btn-loc" class="hidden" attrLoc="1">';
$pattern = '/<div id="btn-loc".*\sattrLoc="([0-9])">/';
preg_match($pattern, $str, $matches);
var_dump($matches);

输出

array
  0 => string '<div id="btn-loc" class="hidden" attrLoc="1">' (length=45)  
  1 => string '1' (length=1)