GPath中這個XPath //div[@id='foo']
的替代方案是什麼?一般來說,我可以在哪裏找到這個文檔?如何在GPath中查找按屬性值的元素?
回答
以前的海報送給大家:
def node = new XmlSlurper().parseText(...)
def foo = node.depthFirst().findAll { it.name() == 'div' && [email protected] == 'foo'}
你可能需要閱讀其他幾個環節這是必需的:假設您的文檔已被淹沒xml
,你想要
def foo = xml.path.to.div.find{[email protected] == 'foo'}
找到一個單一的結果。或findAll
找到所有結果。
XPath中的//表示我不知道確切的路徑到'div' – yegor256
好的。那麼以前的海報給了你解決方案: - 使用'xml.depthFirst()。find {it.name()=='div'&& id。@ id =='foo}' – winstaan74
@ winstaan74獲取所有內容的表達式具有特定屬性名稱的元素? – raffian
你需要的是這樣的:
def root = new XmlSlurper().parseText(<locOfXmlFileYouAreParsing>.toURL().text)
def foundNode = root.'**'.find{ [email protected] == "foo" }
其雙*,可以讓你發現它不知道的路徑。至少我是這樣做的。
如何通過元素名稱找到節點的第一個實例,假設有多個節點? – raffian
'xml。'**'。find {it.name()=='elementName'}' 這將是第一個。 –
要模仿表達// DIV [@ ID = '富']你可以用GPATH做最接近的事是:
def xml = new XmlParser().parseText(text)
xml.'**'.div.findAll { [email protected]=="foo" }
的 '**' 幾乎是一樣的「/ /'在您的XPath中。
xml.'**'.div
將在任何級別產生類型div的所有節點。
用的findAll後來過濾()用給定的封閉你的節點列表,你在XPath情況下
- 1. 如何按屬性查找div元素?
- 2. 按屬性查找元素
- 3. 如何查找按屬性值的元素?
- 4. 使用jQuery按屬性查找元素
- 5. AngularJS - 通過屬性值查找元素
- 6. 使用XmlSlurper/GPath查找xml元素值不區分大小寫?
- 7. 按屬性查找元素,設置發現元素的不同屬性
- 8. 如何查找具有特定數據屬性值的元素
- 9. 如何按樣式屬性查找元素?
- 10. jQuery按屬性名稱和值查找表單元素?
- 11. 如何在jQuery中查找沒有數據屬性的元素?
- 12. 在XML中的任意位置查找元素或屬性值
- 13. Selenium - 如何在Java中通過任何屬性查找元素?
- 14. 有沒有辦法在Python Selenium中按屬性查找元素?
- 15. 在DOM文檔中按屬性查找元素
- 16. 當屬性附加到該元素時,在C#中查找XML元素的值
- 17. jQuery 1.4.4:如何根據數據屬性值查找元素?
- 18. 如何根據兩個數據屬性值查找元素?
- 19. 如何在jQuery中查找元素值
- 20. 如何在JQuery中通過屬性查找元素?
- 21. 如何使用XPath在一組元素中查找屬性的最小值?
- 22. 如何查找屬性值
- 23. XPath的:找到標識屬性值在當前元素屬性
- 24. 如何找出JavaScript中元素lang屬性的計算值?
- 25. JQuery尋找元素的屬性值
- 26. 如何通過屬性查找集合中的元素?
- 27. XPath查找具有屬性的元素
- 28. 用lxml查找元素的屬性
- 29. 查找沒有屬性的元素
- 30. 查找元素屬性中的所有重複值
這Groovy的,不是做GPATH。我需要一個GPath表達式。 – yegor256
不太確定你的意思,因爲GPath主要使用groovy語法和以下額外符號: 「..」,返回父 「*」,返回所有兒童 「**」作爲深度第一個循環 「@」用於訪問普通節點訪問器的屬性。 –
我正在尋找類似''..div {it。@ id =='foo'}「'的東西,但它不起作用.. – yegor256