Co jest alternatywą dla tej XPath //div[@id='foo']
w GPath? W ogóle, gdzie mogę znaleźć tę dokumentację?Jak znaleźć element według wartości atrybutu w GPath?
Odpowiedz
Oto odpowiedni fragment:
def node = new XmlSlurper().parseText(...)
def foo = node.depthFirst().findAll { it.name() == 'div' && [email protected] == 'foo'}
Kilka inne linki, które warto przeczytać:
Poprzedniego poster dał Ci wszystko to jest wymagane: zakładając, że twój dokument został splądrowany xml
, aby uzyskać
def foo = xml.path.to.div.find{[email protected] == 'foo'}
, aby znaleźć pojedynczy wynik. Lub findAll
, aby znaleźć wszystkie wyniki.
'//' w XPath oznacza, że nie znam dokładnej ścieżki do 'div' – yegor256
ok. poprzedni plakat dał ci rozwiązanie: - użyj 'xml.depthFirst(). find {it.name() == 'div' && id. @ id == 'foo}' – winstaan74
@ winstaan74 Jakie jest wyrażenie do uzyskania wszystkich elementy o określonej nazwie atrybutu? – raffian
czego potrzebujesz to:
def root = new XmlSlurper().parseText(<locOfXmlFileYouAreParsing>.toURL().text)
def foundNode = root.'**'.find{ [email protected] == "foo" }
jego podwójne *, który pozwoli Ci znaleźć go nie znając drogi. Przynajmniej tak to robię.
Jak znaleźć pierwszą instancję węzła po nazwie elementu, zakładając, że jest więcej niż jeden? – raffian
'xml. '**'. Find {it.name() == 'elementName'}' I to będzie pierwsze. –
naśladować wyraz // div [@ id = 'foo'] najbliżej, co można zrobić z GPath jest:
def xml = new XmlParser().parseText(text)
xml.'**'.div.findAll { [email protected]=="foo" }
do '**' jest niemal tak samo jak „//'w twoim XPath.
xml.'**'.div
da wszystkie węzły typu div na dowolnym poziomie.
Później filtrowanie findAll() z podanym zamknięcia można uzyskać listę węzłów, jak to zrobić w przypadku XPath
- 1. Znajdź element według atrybutu
- 2. AngularJS - Znajdź element według wartości atrybutu
- 3. Sortuj element według wartości liczbowej atrybutu danych
- 4. XPath, aby wybrać element według wartości atrybutu
- 5. Jak uzyskać element według wartości jego atrybutu za pomocą JDOM?
- 6. Jak wyszukiwać według wartości atrybutu
- 7. Kątomierz: znajdź ukryty element wejściowy według wartości atrybutu
- 8. filtr jQuery według wartości atrybutu
- 9. ActiveRecord, Znajdź według wartości zagnieżdżonego atrybutu
- 10. Emacs: jak znaleźć zmienną według jej wartości?
- 11. Jak znaleźć element w Watinie według jego nazwy?
- 12. Czy można usunąć element kolejki według wartości?
- 13. Sortowanie obiektu ArrayList według wartości atrybutu w Javie
- 14. jQuery 1.4.4: Jak znaleźć element na podstawie jego wartości atrybutu danych?
- 15. Jak wybrać elementy według wartości atrybutu, gdy wartości zawierają znak dolara?
- 16. jquery get children według atrybutu
- 17. Sortuj tablicę według atrybutu
- 18. Strumień Java: znajdź element o wartości min/max atrybutu
- 19. Jak wybrać element wejściowy według wartości za pomocą javascript?
- 20. Jak znaleźć skrypt modyfikujący css wybranego atrybutu
- 21. XPath do wybierz węzły wyłączeniem według listy wartości atrybutu
- 22. Symfony DomCrawler: Znajdź element o określonej wartości atrybutu
- 23. Element-obowiązkowe deklaracja atrybutu w schemacie XSD:
- 24. Przechwytywanie jedności C# według atrybutu
- 25. Jak znaleźć procedury składowane według nazwy?
- 26. XSLT - Jak wybrać atrybut XML według atrybutu?
- 27. XPath: Jak wybrać węzeł według jego atrybutu?
- 28. Średnie wartości według grupy
- 29. Znajdź element według selektora stylu w jquery
- 30. Jak znaleźć obliczoną wartość atrybutu lang elementu w JavaScript?
Nadszedł Groovy, nie GPath. Potrzebuję pojedynczego wyrażenia GPath. – yegor256
Nie jestem pewien, co masz na myśli, ponieważ GPath w większości używa skomplikowanej składni z następującymi dodatkowymi symbolami: "..", która zwraca rodzicowi "*", który zwraca wszystkie dzieci "**", które działają jak głębokość pierwsza pętla "@", która służy do uzyskiwania dostępu do właściwości normalnego węzła dostępowego. –
Szukam czegoś takiego jak '' ..div {it. @ Id == 'foo'} "', ale to nie działa. – yegor256