Pakiet scala.xml
reprezentuje XML z węzłami drzewa z etykietami. Ale czy to drzewo jest jednokierunkowe w Scala 2.7, ponieważ wydaje się, że nie ma możliwości uzyskania dostępu do rodzica danego Elem
danego Elem
? To samo dotyczy rodzica Document
. Na przykład w XOM masz dostęp do getParent
i getDocument
uzyskiwania dostępu do katalogu głównego drzewa. Czy można to zrobić za pomocą interfejsu XML API Scala?Jak uzyskać dostęp do elementu nadrzędnego w Scala XML
Odpowiedz
Jak wspomniano przez innych, nie ma żadnych linków macierzystych, aby uczynić je wydajnymi, niezmiennymi strukturami. Na przykład:
scala> val a = <parent><children>me</children></parent>
a: scala.xml.Elem = <parent><children>me</children></parent>
scala> val b = a.child(0)
b: scala.xml.Node = <children>me</children>
scala> val c = <newparent>{b}</newparent>
c: scala.xml.Elem = <newparent><children>me</children></newparent>
scala> a
res0: scala.xml.Elem = <parent><children>me</children></parent>
scala> b
res1: scala.xml.Node = <children>me</children>
scala> c
res3: scala.xml.Elem = <newparent><children>me</children></newparent>
Żadna struktura danych nie została skopiowana. Węzeł wskazany przez b
jest tym samym węzłem wskazanym zarówno przez a
jak i c
. Jeśli musiałby wskazywać na rodzica, to musiałbyś go skopiować, gdy używałbyś go w c
.
Aby nawigować w tej strukturze danych w pożądany sposób, potrzebny jest tak zwany czysto aplikacyjny kursor XML.
Ale czy to drzewo jest jednokierunkowe w Scali?
Tak. Ze względu na podejście do niezmienności w scala.xml, węzły nie znają swojego rodzica.
Jest jednokierunkowy, więc węzły nie są świadome swojego rodzica.
Być może będziesz w stanie rozwiązać swój problem, przekształcając go w DOM. W standardowej bibliotece nie ma nic, ale znalazłem this thread na temat, który może być przydatny.
- 1. Jak uzyskać dostęp do elementu nadrzędnego w angularjs 1,5
- 2. Dostęp do elementu nadrzędnego elementu za pomocą PHP SimpleXML?
- 3. Dostęp do elementu nadrzędnego wewnątrz pętli w jsrender
- 4. Handlebars.js: Jak uzyskać dostęp do indeksu nadrzędnego w zagnieżdżonych?
- 5. Jak uzyskać dostęp do chronionego elementu
- 6. Jak uzyskać dostęp do nadrzędnego elementu klasy z zagnieżdżonej klasy w Javie?
- 7. jak uzyskać dostęp do określonego elementu każdego elementu widoku siatki
- 8. Jak uzyskać dostęp do obiektu nadrzędnego z funkcji lambda?
- 9. Rozszerzanie widżetu jquery ui - jak uzyskać dostęp do zdarzenia nadrzędnego
- 10. Jak uzyskać dostęp do nadrzędnego kontenera nazewnictwa złożonego?
- 11. jak uzyskać dostęp do obiektu okna nadrzędnego za pomocą jquery?
- 12. kątowa właściwość elementu potomnego 2 dostęp z elementu nadrzędnego
- 13. Jak mogę uzyskać dostęp do ostatniego wyniku w Scala REPL?
- 14. Dostęp do zakresu nadrzędnego w dołączonej dyrektywie
- 15. Jak uzyskać dostęp do elementu kolumny VectorUDT w Spark DataFrame?
- 16. Jak uzyskać dostęp do indeksu elementu w szablonie knockout.js
- 17. Jak uzyskać dostęp do elementu wideo HTML w Angular2
- 18. jak uzyskać dostęp do elementu słownika w szablonie django?
- 19. kątowa: Jak uzyskać dostęp do elementu zakresu dyrektywę w kontrolerze
- 20. Jak uzyskać dostęp do pierwszego elementu w iteratorze?
- 21. Jak uzyskać dostęp do ostatniego elementu w tablicy?
- 22. Jak uzyskać dostęp do storyboardu w zasobach elementu z XAML?
- 23. Pobieranie elementu nadrzędnego elementu iframe dokumentu w jQuery
- 24. Jak uzyskać dostęp do zawartości WPF ContentControl?
- 25. Jak uzyskać dostęp do dokumentacji scala z rep?
- 26. Jak uzyskać dostęp do fragmentów Java z Scala?
- 27. Jak uzyskać dostęp do danych postów z gry scala?
- 28. Dostęp do okna nadrzędnego z Kontroli użytkownika
- 29. Jak uzyskać dostęp do elementu potomnego z dzieci()?
- 30. Jak uzyskać dostęp do elementu zewnętrznego z literału obiektu zagnieżdżonego?