Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-DomDoc&;XPath获取未知子元素的数目_Php_Xpath_Domdocument - Fatal编程技术网

PHP-DomDoc&;XPath获取未知子元素的数目

PHP-DomDoc&;XPath获取未知子元素的数目,php,xpath,domdocument,Php,Xpath,Domdocument,我使用DomDoc检索网站的内容,并使用XPath查询某些元素。例如,我查询元素-通过在循环$parations=$dom->query('//p')->item(I)中执行类似操作query('//p')->item(i)可以使用$element->getElementsByTagName('*')->length作为查找所有子体的DOM方式,或者使用$DOM->query('./*',$element)作为XPath方式。对于子元素,使用$dom->query('*',$element)那么

我使用DomDoc检索网站的内容,并使用XPath查询某些元素。例如,我查询
元素-通过在循环
$parations=$dom->query('//p')->item(I)中执行类似操作
。现在,有没有一种方法可以找出
中可能包含的其他HTML元素的类型,以及段落元素中还有多少其他元素

我见过这个例子:

但这似乎只有在您了解子元素的情况下才有效?如果我不知道

的“内容”,如何获取计数和元素名称


谢谢大家!

在任何DOM元素上,您都可以使用
getElementsByTagName('*')
查找所有子元素,或者使用相对于元素的XPath查找路径为
*
的所有子元素,或者使用XPath表达式
count(*)对它们进行计数
或者您可以分别使用
//*
对所有子元素执行相同的操作
计数(./*)


因此给定
$element=$dom->query('//p')->item(i)
可以使用
$element->getElementsByTagName('*')->length
作为查找所有子体的DOM方式,或者使用
$DOM->query('./*',$element)
作为XPath方式。对于子元素,使用
$dom->query('*',$element)

那么,在任何dom元素上,您都可以使用
getElementsByTagName('*')
查找所有子元素,或者使用相对于元素的XPath查找路径
*
的所有子元素,或者使用XPath表达式
count(*)对它们进行计数
或者您可以分别使用
//*
对所有子元素执行相同的操作
计数(./*)


因此给定
$element=$dom->query('//p')->item(i)
可以使用
$element->getElementsByTagName('*')->length
作为查找所有子体的DOM方式,或者使用
$DOM->query('./*',$element)
作为XPath方式。对于子元素,使用
$dom->query(“*”,$element)

这非常有效。非常感谢。您还知道检索子代名称的方法吗?因为我必须确定
中存在什么类型的HTML元素(我所说的名称不是指HTML属性“name”,我指的是HTML元素名,即实际的标记),节点的属性都有文档记录,请参见,这样您就可以使用
$Element->localName
。这工作得很好。非常感谢。您还知道检索子代名称的方法吗?因为我必须确定
中存在什么类型的HTML元素(我所说的名称不是指HTML属性“name”,我指的是HTML元素名,即实际的标记),所以节点的属性是文档化的,请参见,这样您就可以使用
$Element->localName