Bir üçüncü taraf kitaplığı kullanmak için bir w3c DOM Belgesine ihtiyacım var. Ancak, xml düğümlerini oluşturmak Scala'da daha kolaydır. Yani bir scala xml öğesini w3c dom'a dönüştürmenin bir yolunu arıyorum. Açıkçası, bir dizeye serileştirebilir ve onu ayrıştırabilirim, ama daha performanslı bir şey arıyorum.Scala XML'inden w3c DOM'ye dönüşüm var mı?
9
A
cevap
6
Oluşturabileceğiniz basit (ad alanı olmayan) bir sürüm. Fikir vermeli. Sadece doc.createFoo (...) çağrılarını eşdeğer doc.createFooNS (...) ile değiştirin. Ayrıca, niteliklerin daha akıllıca ele alınması gerekebilir. Ancak, bu basit görevler için çalışmalıdır.
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
}
}
İlgili konular
- 1. w3c Belgesini jsoup one'a dönüştürmenin kullanışlı bir yolu var mı?
- 2. Scala kimlik fonksiyonu var mı?
- 3. Scala derleyicisinin reentrantı var mı?
- 4. Scala - uns undes ile kapalı dönüşüm
- 5. Scala için kod gizleme araçları var mı?
- 6. Scala Future bloğunda bir bekleme var mı?
- 7. Bir Dosyayı Geri Dönüşüm Kutusu'na Taşımanın Winapi Yolu Var mı?
- 8. Tüm site için W3C doğrulama
- 9. Dönüşüm
- 10. dönüşüm
- 11. Scala makrolarında ne var?
- 12. R'de Scala Seçeneği/İsteğe Bağlı gibi bir şey var mı?
- 13. Scala/Java için npmjs gibi bir şey var mı
- 14. OTP davranışları için Akka/Scala eşdeğerleri var mı?
- 15. GUI için herhangi bir Scala DSL var mı?
- 16. Scala projesi için herhangi bir OWASP kontrol aracı var mı?
- 17. Spring Source Tools Suit ile uyumlu scala eklentisi var mı?
- 18. Scala için uygun bir tarih/saat API var mı?
- 19. Scala 2.8'de do-till (postcondition) döngüsü var mı?
- 20. Scala yorumlayıcısında güç modundan çıkmak için bir yol var mı?
- 21. Scala için silme işleminin herhangi bir avantajı var mı?
- 22. Spark komut dosyasında bir Scala tercümanı var mı?
- 23. scala
- 24. hızlı dönüşüm
- 25. Scala REPL'in sekmesi tamamlandı mı?
- 26. Scala, İki dosya var sınıf
- 27. 3D dönüşüm?
- 28. SORM'de SQLite desteği var mı?
- 29. Çevresinde herhangi bir ScalaConsole var mı?
- 30. Python Numpy - Karmaşık Sayılar - Polar - Dikdörtgen dönüşüm için bir işlev var mı?