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查询,它们是"发明"来做这些事情的。