标签: anti-xml

xml处理的一个例子,但使用anti-xml而不是Scala xml

我想看看使用http://anti-xml.org而不是Scala XML 重写bellow脚本.

这是第10章的摘录.在Scala中使用XML格式 - http://ofps.oreilly.com/titles/9780596155957/HerdingXMLInScalaDSLs.html

// code-examples/XML/reading/pattern-matching-script.scala
import scala.xml._
val someXML =
 <sammich>
   <bread>wheat</bread>
   <meat>salami</meat>
   <condiments>
     <condiment expired="true">mayo</condiment>
     <condiment expired="false">mustard</condiment>
   </condiments>
</sammich>

someXML match {
 case <sammich>{ingredients @ _*}</sammich> => {
    for (cond @ <condiments>{_*}</condiments> <- ingredients)
      println("condiments: " + cond.text)
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢

scala anti-xml

11
推荐指数
1
解决办法
1303
查看次数

你能用antixml来创建xml文件吗?

有一些使用Anti-Xml从XML文档中提取信息的示例,但我没有找到使用Anti-Xml来创建XML文档的示例.Anti-Xml是否支持创建文档,或者我应该使用另一个库(哪一个?).有没有人有一个用Anti-Xml创建XML文档的例子?

xml scala anti-xml

8
推荐指数
1
解决办法
681
查看次数

将元素追加为Anti-XML元素的子元素

假设我有一个XML文档存储为Anti-XML Elem:

val root : Elem =
    <foo attr="val">
        <bar/>
    </foo>
Run Code Online (Sandbox Code Playgroud)

.我希望<baz>blahblahblah</baz>作为一个孩子附加到根元素,给予

val modified_root : Elem =
    <foo attr="val">
        <bar/>
        <baz>blahblahblah</baz>
    </foo>
Run Code Online (Sandbox Code Playgroud)

为了比较,在Python中你可以root.append(foo).

我知道我可以附加(作为兄弟姐妹)Group[Node]使用:+,但这不是我想要的:

<foo attr="val">
    <bar/>
</foo>
<baz>blahblahblah</baz>
Run Code Online (Sandbox Code Playgroud)

如何将其作为最后一个孩子追加<foo>?看看文档,我没有看到明显的方法.


Scala XML Building类似:向现有节点添加子节点,但此问题仅适用于Anti-XML而不是scala.xml.

xml scala anti-xml

6
推荐指数
1
解决办法
1378
查看次数

反XML组"收集"不收集

我是从scala-user交叉发布的:

我有以下内容:

object XmlTest {

  import com.codecommit.antixml._

  implicit def toPicker(nodes: Group[Node]): Picker = new Picker(nodes)

  class Picker(nodes: Group[Node]) {
    def pick[A <: Node : ClassManifest]: Group[A] = nodes collect {
      case a if implicitly[ClassManifest[A]].erasure.isInstance(a) => a.asInstanceOf[A]
    }
  }

  def testCollect(elems: Group[Elem]) {
    println("size before collect = " + elems.size)
    val es = elems collect {
      case e if e.name == "c" => println("element name is " + e.name); e
    }
    println("size after collect = " + es.size)
  }

  def main(args: …
Run Code Online (Sandbox Code Playgroud)

scala anti-xml

3
推荐指数
1
解决办法
588
查看次数

Anti-XML scala隐藏了xml属性

Anti-xml将成为Scala中的后继xml库.但我发现了一些怪癖的东西.

输入

package com.twitter.sample
import com.codecommit.antixml._

object ReadingNamespaceXml extends Application{

  val xml = <tra:route xmlns:tra="trace">
              <spo:id xmlnls:spo="sport">23232322</spo:id>
              <tra:service ref="go" xsi:type="ref:manualService" xmlns:ref="ServiceRef"/>
            </tra:route>.convert

  val route =  xml \ "route"
  Console println route.unselect
}
Run Code Online (Sandbox Code Playgroud)

输出:

  <tra:route>
  <spo:id xmlnls:spo="sport">23232322</spo:id>
  <tra:service xsi:type="ref:manualService" ref="go"/>
  </tra:route>
Run Code Online (Sandbox Code Playgroud)

因此,输入xml和输出不一样.为什么?

xml scala namespaces anti-xml

2
推荐指数
1
解决办法
264
查看次数

标签 统计

anti-xml ×5

scala ×5

xml ×3

namespaces ×1