El paquete scala.xml
representa XML con nodos de un árbol etiquetado. Pero, ¿este árbol es unidireccional en Scala 2.7, ya que parece que no hay forma de acceder al padre Elem
de un determinado Elem
? Lo mismo parece aplicarse para el padre Document
. Por ejemplo, en XOM tiene accesos getParent
y getDocument
para navegar hacia la raíz del árbol. ¿Se puede hacer esto con la API XML de Scala?Cómo acceder al elemento principal en Scala XML
Respuesta
Según lo mencionado por otros, no hay enlaces principales para que sean estructuras eficientes e inmutables. Por ejemplo:
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>
No se copió ninguna estructura de datos. El nodo apuntado por b
es el mismo nodo al que apuntan a
y c
. Si tuviera que señalar a un padre, entonces tendría que hacer una copia cuando lo usó en c
.
Para navegar en esa estructura de datos de la manera que desee, necesita lo que se denomina Cursor XML puramente aplicable.
¿Pero este árbol es unidireccional en Scala?
Sí. Debido al enfoque de la inmutabilidad en scala.xml, los nodos no conocen sus padres.
Es unidireccional, por lo que los nodos no son conscientes de su padre.
Es posible que pueda resolver su problema convirtiendo a un DOM. No parece haber nada en la biblioteca estándar para esto, pero encontré this thread sobre el tema que podría ser útil.
- 1. ¿Cómo acceder al widget principal en qt?
- 2. CSS3 acceder al último elemento
- 3. ¿Cómo acceder al elemento HTML sin ID?
- 4. Cómo cambiar el atributo en el elemento XML de Scala
- 5. ¿Cómo puedo acceder al último resultado en Scala REPL?
- 6. constructores en Scala (principal/auxiliar/principal predeterminado)
- 7. ¿Cómo acceder al contenedor de nomenclatura principal de Composite?
- 8. ¿Cómo acceder al elemento anterior/siguiente mientras está en bucle?
- 9. Cómo acceder al atributo id de cualquier elemento en Raphael
- 10. ¿cómo acceder al elemento anterior en la lista usando linQ?
- 11. cómo acceder al elemento del diccionario en la plantilla django?
- 12. JQuery agregar clase al elemento principal
- 13. acceder al elemento html usando xpath
- 14. XML recursiva en Scala
- 15. Cómo acceder al elemento hijo fuera de los elementos secundarios()?
- 16. ¿Cómo puedo acceder al elemento ASP runat = "server" usando javascript?
- 17. ¿Tiene acceso al elemento principal de un elemento con SimpleXML de PHP?
- 18. serialización de Scala XML
- 19. Rieles: actualice el objeto principal al guardar el elemento secundario
- 20. conversión xml automática en Scala
- 21. jquery cómo cambiar solo un elemento principal al colocar el cursor sobre el elemento
- 22. Acceder al elemento vinculado a una fila DataGridView (WinForms)
- 23. ¿Cómo funciona el soporte de Scala XML?
- 24. ¿Al hacer clic en el elemento principal, también se puede hacer clic en el elemento secundario?
- 25. En Python, ¿cómo puedo acceder al espacio de nombres del módulo principal desde un módulo importado?
- 26. ¿Cómo creo un nodo raíz XML en Scala sin un nombre de elemento literal?
- 27. Encuadernación desde el elemento de menú contextual al control principal
- 28. Cambio de tamaño de lienzo HTML5 al elemento principal
- 29. Javascript: obtener la posición del mouse relativo al elemento principal
- 30. Cómo POSTAR un elemento xml en python