具有特定属性的php getElementsByTagName

时间:2010-11-19 10:56:06

标签: php xml dom

我认为这会得到第一个名为<gallery>

的元素
$gallery = $objDOM->getElementsByTagName('gallery')->item(0);

我正试图获得<gallery name="Third">

我想我需要的东西相当于:

$gallery = $objDOM->getElementsByTagName('gallery[@name="Third"]')->item;

谢谢,安迪

2 个答案:

答案 0 :(得分:5)

这仅适用于DOMXPath,例如

$xp    = new DOMXPath($yourDOMDocument);
$nodes = $xp->query('//gallery[@name="Third"]');

或在使用

调用getElementsByTagName后迭代节点列表
foreach ($objDOM->getElementsByTagName('gallery') as $gallery) {
    if($gallery->getAttribute('name') === 'Third') {
         // do something
    }
}

答案 1 :(得分:1)

顾名思义 getElementsByTagName()只接受标记名称。尝试使用XPath

$xpath = new DOMXPath ($objDOM);
$nodeList = $xpath->query('gallery[@name="Third"]');
$gallery = $nodeList->item(0);

不要测试它,因此可能存在错误,错别字或其他内容。