DOMDocument类型对象识别

时间:2014-01-29 11:31:13

标签: php dom domdocument

这是我的PHP代码:

$dom = new DOMDocument();
$html ='<html><body><input type="text" name="test" id="test" class="form-control" value="120.00" style="text-align: right;"></body></html>';
$dom->loadHTML($html);      
$myElement = $dom->getElementById("test");

如何获取对象类型并使用属性键入(input type =“hidden”)?例如

if ($myElement->is('input')) then etc....
if ($myElement->is('img')) then etc....
if (($myElement->is('input')) && ($myElement->has('hidden'))) then etc....

可能吗? 非常感谢。 Aesis。

3 个答案:

答案 0 :(得分:0)

你可以这样做......利用getAttribute班级的DOMDocument

    <?php
    $dom = new DOMDocument();
    $html ='<html><body><input type="text" name="test" id="test" class="form-control" value="120.00" style="text-align: right;"></body></html>';
    $dom->loadHTML($html);
    foreach ($dom->getElementsByTagName('input') as $tag) {
        if ($tag->getAttribute('name') === 'test') {
        echo $tag->getAttribute('value'); //"prints" 120.00
        echo $tag->getAttribute('type'); //"prints" text (attribute)
      }
    }

您也可以对其他属性执行相同操作。

答案 1 :(得分:0)

您是否尝试过$ myElement-&gt; tagName或$ dom-&gt; getElementById(&#34; test&#34;) - &gt; tagName?

http://www.php.net/manual/pt_BR/domdocument.getelementbyid.php

答案 2 :(得分:0)

试试这个...... 您可以使用下面的代码获取对象类型。

$typeofObj = $myElement->nodeName;
echo $typeOfObj;

并找到它具有属性“隐藏”然后

$node = $dom->saveHTML($myElement);
if(preg_match("/(hidden)/i",$node)) {
    // has hidden
}
else { //not have hidden
    }