在给定元素下通过XPath搜索

Ben*_*min 15 php xpath dom

我在PHP中知道在DOM上执行XPath查询的唯一方法是DOMXPath,它只适用于DOMDocument:

public __construct ( DOMDocument $doc )
Run Code Online (Sandbox Code Playgroud)

是否有类似的机制来搜索相对于DOMElement

问题是,我需要搜索相对于a的abritrary XPath(我无法控制)DOMElement.

我试过这样做:

$domElement->getNodePath() . '/' . $xPath;
Run Code Online (Sandbox Code Playgroud)

但是如果XPath包含|(字符),则此方法不起作用.

hak*_*kre 27

就在这里.该元素也是文档的一部分,因此您使用文档的xpath对象,但是当您运行查询时,还有第二个参数,即第一个参数中的查询相对于的上下文节点:

// query all child-nodes of $domElement
$result = $xpath->query('./*', $domElement);
Run Code Online (Sandbox Code Playgroud)

DOMXpath::query().

  • @hakre我亲爱的朋友**路径应相对书写**这是我在搜索的语句,非常重要!我很困惑,为什么当我使用`// div [@ class ='some row']`之类的东西时总是得到所有元素,而现在我知道要在特定的** DOMElement **中进行搜索,您需要指定相对的像`./div[@class='some row']`之类的路径。谢谢 ! (2认同)