我想访问我添加到HTML文件中某些元素的自定义属性,这里是littleBox="somevalue"
属性
<div id="someId" littleBox="someValue">inner text</div>
以下无效:
foreach($html->find('div') as $element){
echo $element;
if(isset($element->type)){
echo $element->littleBox;
}
}
我看到一篇有类似问题的文章,但由于某些原因我无法复制它。这是我试过的:
function retrieveValue($str){
if (stripos($str, 'littleBox')){//check if element has it
$var=preg_split("/littleBox=\"/",$str);
//echo $var[1];
$var1=preg_split("/\"/",$var[1]);
echo $var1[0];
}
else
return false;
}
当我调用retrieveValue()
函数时,没有任何反应。 $element
(在上面的第一个PHP示例中)不是字符串吗?我不知道我是否错过了什么,但它没有返回任何东西。
以下是完整的脚本:
<?php
require("../../simplehtmldom/simple_html_dom.php");
if (isset($_POST['submit'])){
$html = file_get_html($_POST['webURL']);
// Find all images
foreach($html->find('div') as $element){
echo $element;
if(isset($element->type)!= false){
echo retrieveValue($element);
}
}
}
function retrieveValue($str){
if (stripos($str, 'littleBox')){//check if element has it
$var=preg_split("/littleBox=\"/",$str);
//echo $var[1];
$var1=preg_split("/\"/",$var[1]);
return $var1[0];
}
else
return false;
}
?>
<form method="post">
Website URL<input type="text" name="webURL">
<br />
<input type="submit" name="submit">
</form>
答案 0 :(得分:4)
你试过了吗?
$html->getElementById("someId")->getAttribute('littleBox');
您也可以使用SimpleXML:
$html = '<div id="someId" littleBox="someValue">inner text</div>';
$dom = new DOMDocument;
$dom->loadXML($html);
$div = simplexml_import_dom($dom);
echo $div->attributes()->littleBox;
我建议不要使用正则表达式解析html ,但不应该这部分是这样的:
$str = $html->getElementById("someId")->outertext;
$var = preg_split('/littleBox=\"/', $str);
$var1 = preg_split('/\"/',$var[1]);
echo $var1[0];
答案 1 :(得分:0)
看到http://code.google.com/p/phpquery/它就像jQuery但是在php上。非常强大的图书馆。