Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.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 如何在给定元素下按id搜索?_Php_Dom_Xpath - Fatal编程技术网

Php 如何在给定元素下按id搜索?

Php 如何在给定元素下按id搜索?,php,dom,xpath,Php,Dom,Xpath,如何通过id搜索出现在另一个DOMElement下的DOMElement $element->ownerDocument->getElementById('my-id'); …将搜索整个文档。我只希望在元素出现在$element下时返回该元素,非常简单: 基本上,它会在上下文节点下方的树中的任意位置(此处为$element)查找id属性等于my id…的元素,非常简单: 基本上,它会在上下文节点下方的树中的任意位置(此处为$element)查找id属性等于my id…的元素。您可以使用XPat

如何通过
id
搜索出现在另一个
DOMElement
下的
DOMElement

$element->ownerDocument->getElementById('my-id');
…将搜索整个文档。我只希望在元素出现在
$element

下时返回该元素,非常简单:

基本上,它会在上下文节点下方的树中的任意位置(此处为
$element
)查找
id
属性等于
my id

的元素,非常简单:


基本上,它会在上下文节点下方的树中的任意位置(此处为
$element
)查找
id
属性等于
my id

的元素。您可以使用XPath执行此操作。以下部件将具有该元件(典型的小于120 chars的一个衬里):

如果找不到,您将得到
NULL
。这基本上就是使用@ircmaxell在回答中建议的简写形式:

descendant::*[@id="my-id"]
.//*[@id="my-id"]
上下文节点是相同的,在simplexml xpath中,它自动连接到上下文节点,在DOMXPath中,您需要指定它

哦,刚才看到了,是您在这个答案中编辑了xpath,所以重要的部分是当绑定到上下文节点时,在双斜杠
/
之前使用点
,否则斜杠将再次指向根,点阻止了这一点(与在文件系统中指定相对文件路径相比)

另见:


您可以使用XPath实现这一点。以下部件将具有该元件(典型的小于120 chars的一个衬里):

如果找不到,您将得到
NULL
。这基本上就是使用@ircmaxell在回答中建议的简写形式:

descendant::*[@id="my-id"]
.//*[@id="my-id"]
上下文节点是相同的,在simplexml xpath中,它自动连接到上下文节点,在DOMXPath中,您需要指定它

哦,刚才看到了,是您在这个答案中编辑了xpath,所以重要的部分是当绑定到上下文节点时,在双斜杠
/
之前使用点
,否则斜杠将再次指向根,点阻止了这一点(与在文件系统中指定相对文件路径相比)

另见:


XPath是你的选择吗?@RolandoIsidoro是@Benjamin仅供参考,不确定该用户是否知道…@HamZa我听说了phpQuery,但这不是我现在的选择!XPath是你的选择吗?@RolandoIsidoro是@Benjamin仅供参考,不确定该用户是否知道…@HamZa我听说了phpQuery,但这不是我现在的选择!实际上,XPath表达式中存在语法错误,它返回了
$element
之外的元素。我已经冒昧地用现在适合我的代码更新了你的答案!实际上,XPath表达式中存在语法错误,它返回了
$element
之外的元素。我已经冒昧地用现在适合我的代码更新了你的答案!
descendant::*[@id="my-id"]
.//*[@id="my-id"]