PHP DomDocument - getAllChildrenByTagName


PHP DomDocument - getAllChildrenByTagName

PHP中是否有类似"getAllChildrenByTagName"的函数?

$dom = new DOMDocument();
$dom->loadXML('<p><a id="1">test 1</a><span><a id="2">test 2</a></span></p>');
foreach($dom->getElementsByTagName('a') AS $node)
    echo($node->textContent);

这里我只想要一个"id=1"的a-Tag。有可能吗?

您可以使用XPath直接获取您要查找的元素:

$dom = new DOMDocument();
$dom->loadXML('<p><a id="1">test 1</a><span><a id="2">test 2</a></span></p>');
$xpath = new DOMXpath( $dom);
$a = $xpath->query( '//a[@id="1"]')->item( 0);
echo $a->textContent;

这将打印:

test 1 

这里最好使用XPath。看看下面的PHP代码。

$dom = new DOMDocument();
$dom->loadXML('<p><a id="1">test 1</a><span><a id="2">test 2</a></span></p>');
$xpath = new DOMXpath($dom);
$elements = $xpath->query("//a[@id='1']");

否,不使用getElementsbyTagName。

最好使用XPath查询,它们是"发明"来做这些事情的。

相关文章:
  • 没有找到相关文章