【发布时间】:2017-08-02 14:45:39
【问题描述】:
我正在编写一个基于使用 xPath 操作数据的基本 HTML 报告模板系统。本质上,我需要一个 xPath 查询,如果它们有某个类,它将选择一个节点或其子节点。
$query = $xPath->query (".//*[contains(concat(' ', normalize-space(@class), ' '), ' -delete-if-no-stock ')]", $node);
我了解 xPath 选择器.//*[contains(concat(' ', normalize-space(@class), ' '), ' -delete-if-no-stock ')] 专门查看$node 参数的后代节点。
我想要一个本质上询问“节点或其任何子节点”的 xPath 查询。我知道有一个联合运算符|,但我还没有看到如何实现它。我会想到这样的事情:.[contains(concat(' ', normalize-space(@class), ' '), ' -delete-if-no-stock ')] | .//*[contains(concat(' ', normalize-space(@class), ' '), ' -delete-if-no-stock ')] 但这会产生Invalid expression 错误。
【问题讨论】:
-
节点或其子节点是指节点及其子节点?
-
我的意思是逻辑或,如“Union”。
-
父母和孩子都应该包含 -delete-if-no-stock 类?
-
@akond 父子类可以包含 -delete-if-no-stock