我可以使用.//div/h1/text() | .//div/h2/text()
來選擇幾條路徑。不過,我想知道是否有一種方法可以在沒有明確寫出每條路徑都通用的部分的情況下進行 - 在這種情況下,每次都是.//div/
?使用x-path「|」運算符
2
A
回答
2
至於使用XPath 2.0的快捷鍵,您可以縮短例如//div/h1 | //div/h2
至例如//div/(h1 | h2)
但在XPath 1.0中不允許使用該語法。我認爲XPath 3.0會引入一個let
子句來定義變量。所以我認爲你可以做let $r := /html/body/div[3]/table[2]/tbody/tr[5] return ($r/span | $r/a)
。
或者對於XPath 2.0的更正樣本,您可以將.//div/h1/text() | .//div/h2/text()
縮短爲.//div/(h1/text() | h2/text())
。但使用XPath 1.0,您只能使用.//div/*[self::h1 | self::h2]/text()
。
+0
糾正了錯誤 - 表達意思是不同的。感謝您的解釋。 – root
0
.//div/*[(local-name() = 'h1') or (local-name() = 'h2')]/text()
應該做的伎倆
0
使用:
.//div/*[self::h1 or self::h2]/text()
在XPath 2.0可以使用:
.//div/(h1|h2)/text()
相關問題
- 1. XPath「in」運算符
- 2. Xpath或運算符。如何使用
- 3. XPath謂詞中的'OR'運算符?
- 4. xpath表達式爲「或」運算符
- 5. 在Xpath中,我可以使用'='運算符來鏈接子xpath查詢嗎?
- 6. 使用$運算符
- 7. 如何在XPath中使用和運算符?
- 8. Cakephp 1.3 Set :: extract使用OR XPATH運算符
- 9. 使用`**`作爲運算符運算符快速運行,運算符'-`
- 10. 定時運算符+,運算符,運算符*和運算符/
- 11. 使用python的**運算符和*運算符時的符號
- 12. JQUERY:使用OR運算符
- 13. 如何使用?:運算符
- 14. 直接使用運算符[]
- 15. &&使用三元運算符
- 16. 使用new運算符,請
- 17. 使用賦值運算符
- 18. 使用遞減運算符
- 19. 如何使用%運算符?
- 20. 使用運算符>>
- 21. 使用<<運算符
- 22. 使用位運算符
- 23. 使用條件運算符
- 24. 運算符`!=`是否使用`==`?
- 25. 使用三元運算符
- 26. 使用mod運算符C++
- 27. XMMatrixMultiply vs使用*運算符
- 28. 使用和(&)運算符
- 29. 使用OR運算符
- 30. DataTable.Select使用IN運算符
如果你問的問題XPAT h,你真的需要說出你是否對XPath 1.0或2.0感興趣,因爲答案通常是不同的,並且這兩個版本都被廣泛使用。 –