sch*_*mmd 8 xml scala anti-xml
有一些使用Anti-Xml从XML文档中提取信息的示例,但我没有找到使用Anti-Xml来创建XML文档的示例.Anti-Xml是否支持创建文档,或者我应该使用另一个库(哪一个?).有没有人有一个用Anti-Xml创建XML文档的例子?
是的,您可以构建(和序列化)XML文档:
import com.codecommit.antixml._
val doc = Elem(None, "doc", Attributes(), Map(), Group(
Elem(None, "foo", Attributes("id" -> "bar"), Map(), Group(Text("baz")))
))
val writer = new java.io.StringWriter
val serializer = new XMLSerializer("UTF-8", true)
serializer.serializeDocument(doc, writer)
Run Code Online (Sandbox Code Playgroud)
您还可以使用Anti-XML的拉链来做一些有趣的编辑技巧:
val foos = doc \ "foo"
val newFoo = foo.head.copy(children = Group(Text("new text!")))
val newDoc = foos.updated(0, newFoo).unselect
Run Code Online (Sandbox Code Playgroud)
现在newDoc包含已编辑的文档:
scala> newDoc.toString
res1: String = <doc><foo id="bar">new text!</foo></doc>
Run Code Online (Sandbox Code Playgroud)
在Zipper这doc \ "foo"返回的是从不同的NodeSeq,它携带了它的上下文,它允许您"撤消"所做的选择操作信息\.
更新以回应ziggystar的评论如下:如果你想要像Scala的XML文字,你可以使用convert任何scala.xml.Elem:
val test: com.codecommit.antixml.Elem = <test></test>.convert
Run Code Online (Sandbox Code Playgroud)
我假设这个问题是关于程序化创作的.
| 归档时间: |
|
| 查看次数: |
681 次 |
| 最近记录: |