Per l'utilizzo di una libreria di terze parti, ho bisogno di un documento DOM w3c. Tuttavia, la creazione dei nodi xml è più semplice in Scala. Quindi sto cercando un modo per convertire un elemento scala xml in dom w3c. Ovviamente, posso serializzare su una stringa e analizzarla, ma sto cercando qualcosa di più performante.Qualche conversione dal XML di scala al DOM w3c?
9
A
risposta
6
Ecco una versione semplice (senza spazi dei nomi) che è possibile creare. Dovrebbe dare l'idea. Basta sostituire le chiamate doc.createFoo (...) con i loro equivalenti doc.createFooNS (...). Inoltre, potrebbe essere necessaria una gestione più intelligente degli attributi. Ma questo dovrebbe funzionare per compiti semplici.
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
}
}
Problemi correlati
- 1. Conversione dal file SVG al file XML
- 2. conversione XML automatico a Scala
- 3. Errore AppEngine [java.lang.NoClassDefFoundError: org/w3c/dom/ElementTraversal]
- 4. Descrivere i nodi XML ripetuti nello schema XML W3C?
- 5. Esempio di parser XML DOM
- 6. java.lang.NoSuchMethodError: org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.getLocalName (Lorg/w3c/dom/Node;) Ljava/lang/String;
- 7. Conversione pacchetto SSIS dal 2008 al 2005
- 8. Conversione Scala scalare a conversione
- 9. Conversione di oggetti XML in Java
- 10. Conversione implicita tra tipi di collezione Scala
- 11. Scala e conversione animazione
- 12. Conversione elementi DOM in oggetti
- 13. Esportare un file SVG dal DOM al file
- 14. Chrome Extension - Dal DOM al messaggio Popup.js passando
- 15. Conversione XML per psobject
- 16. Come funziona il supporto di Scala XML?
- 17. C'è qualche evento "on DOM change"?
- 18. Scala problema di conversione implicita
- 19. DOM Larghezza elemento prima aggiunta al DOM
- 20. Ordine degli attributi XML dopo l'elaborazione DOM
- 21. Semplificazione dell'analisi XML DOM in PHP: come?
- 22. Scala Mappa conversione
- 23. Conversione implicita transitivo Scala
- 24. Qualche esempio di giochi in Scala?
- 25. C'è qualche motore di gioco in Scala?
- 26. SVG - cerchio scala dal centro
- 27. Creare XML DOM Element mantenendo caso sensibilità
- 28. efficiente rimozione textnodes dal DOM
- 29. Da Linq a XML vs DOM
- 30. Serializzazione XML Scala