我正在編寫基於使用xPath操作數據的基本HTML報告模板系統。從本質上講,我需要一個xPath查詢,它將選擇一個節點或其子節點,如果他們有一個特定的類。使用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
錯誤。
通過節點或其孩子你的意思是節點和它的孩子? – akond
我的意思是邏輯OR,如「Union」中所示。 – Philip
父母和孩子都應該包含-delete-if-no-stock class? – akond