Para usar una biblioteca de terceros, necesito un documento DOM w3c. Sin embargo, crear los nodos xml es más fácil en Scala. Así que estoy buscando una forma de convertir un elemento scala xml a w3c dom. Obviamente, puedo serializar una cadena y analizarla, pero estoy buscando algo más eficiente.¿Alguna conversión de XML de scala a DOM de w3c?
9
A
Respuesta
6
Aquí hay una versión simple (sin espacios de nombres) sobre la que puede compilar. Deberías dar la idea Simplemente reemplace las llamadas doc.createFoo (...) con sus equivalentes doc.createFooNS (...). Además, podría necesitar un manejo más inteligente de los atributos. Pero, esto debería funcionar para tareas simples.
object ScalaDom {
import scala.xml._
import org.w3c.dom.{Document => JDocument, Node => JNode}
import javax.xml.parsers.DocumentBuilderFactory
def dom(n: Node): JDocument = {
val doc = DocumentBuilderFactory
.newInstance
.newDocumentBuilder
.getDOMImplementation
.createDocument(null, null, null)
def build(node: Node, parent: JNode): Unit = {
val jnode: JNode = node match {
case e: Elem => {
val jn = doc.createElement(e.label)
e.attributes foreach { a => jn.setAttribute(a.key, a.value.mkString) }
jn
}
case a: Atom[_] => doc.createTextNode(a.text)
case c: Comment => doc.createComment(c.commentText)
case er: EntityRef => doc.createEntityReference(er.entityName)
case pi: ProcInstr => doc.createProcessingInstruction(pi.target, pi.proctext)
}
parent.appendChild(jnode)
node.child.map { build(_, jnode) }
}
build(n, doc)
doc
}
}
Cuestiones relacionadas
- 1. Biblioteca Node.js que implementa W3C XML DOM?
- 2. conversión xml automática en Scala
- 3. Conversión de objetos XML a Java
- 4. Conversión de HTML a XML
- 5. ¿Describe la repetición de nodos XML en W3C XML Schema?
- 6. Error de AppEngine [java.lang.NoClassDefFoundError: org/w3c/dom/ElementTraversal]
- 7. Linq a XML vs DOM
- 8. Conversión dinámica de XML a JSON
- 9. conversión de XML a cadena usando C#
- 10. conversión de pdf a xml usando .NET
- 11. conversión de csv a xml con xsd
- 12. Scala problema de conversión implícita
- 13. Conversión automatizada de código fuente de Java a Scala?
- 14. Scala: cómo crear nodos XML de alguna colección
- 15. java.lang.NoSuchMethodError: org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.getLocalName (Lorg/w3c/dom/Node;) Ljava/lang/String;
- 16. serialización de Scala XML
- 17. Rendimiento de Scala XML frente a Java XML
- 18. W3C DOM API en Java, obtenga elementos secundarios por nombre
- 19. ¿Cómo funciona el soporte de Scala XML?
- 20. Iterar todas las generaciones de nodos XML en DOM DOM
- 21. XML a JSON con Scala
- 22. Java/DOM: Obtenga el contenido XML de un nodo
- 23. Convertir objeto Scala a XML
- 24. ¿Cuál es una forma eficiente de crear un W3C DOM programáticamente en Java?
- 25. Conversión de tipo implícita de Scala y ==
- 26. Conversión implícita transitiva Scala
- 27. ¿Existe alguna forma rápida de convertir objetos Java xml en objetos Scala xml?
- 28. Conversión implícita entre los tipos de colección de Scala
- 29. Scala Mapa conversión
- 30. scala conversión implícita o explícita de iterador a iterable