在下面的示例中,一旦属性“id”具有命名空间前缀,我该如何访问它?scala>valns=ns:scala.xml.Elem=scala>ns\"@id"res15:scala.xml.NodeSeq=bar以上工作正常。根据下面的文档应该可以,但实际上没有。scala>valns=ns:scala.xml.Elem=scala>ns\"@{xsi}id"res16:scala.xml.NodeSeq=NodeSeq()全部在Scala2.8.0.final上干杯答案:似乎在xml中没有xlmns就无法访问该属性。因此,要使上面的示例正常工作,它需要位于xlmnamespace内。例如
如果你有这样的事情:valmyStuff=Array(Person("joe",40),Person("mary",35))如何使用该数据作为节点创建XML值?我知道如何在XML表达式中使用{braces}来放置值,但这是值的集合。我需要显式迭代还是有更好的方法?valmyXml={/*whathere?!*/}结果值应该是这样的:joe40mary39 最佳答案 因为它是一种函数式编程语言,Array.map可能就是您正在寻找的:classPerson(name:String,age:Int){deftoXml()={name}{
我有两个scala.xml.Elem对象(实际的,预期的)。我使用的是JUnit4,但也包括XMLUnit1.3。是否有任何简单的方法来比较两个对象是否相等,忽略XML中的属性顺序和无关紧要的空格?我尝试了XMLUnit.assertXMLEqual(),但它提示说类型是scala.xml.Elem。我知道我可以使用equals或==,但我希望在两个值不相等时让断言打印这两个值的好处。如果我使用assertTrue(actual.equals(expected)),并且它们不相等,则唯一的输出将是“断言失败”。 最佳答案 如果您想与
我发现ScalaXML文字对空格很敏感,这有点奇怪,不是吗?因为XML解析器通常不会在意标签之间的空格。这很糟糕,因为我想在我的代码中整齐地设置我的XML:但是Scala认为这是一个不同的值证据就在布丁里:scala>valxml1=xml1:scala.xml.Elem=scala>valxml2=||xml2:scala.xml.Elem=scala>xml1==res0:Boolean=truescala>xml1==xml2res1:Boolean=false...给出了什么? 最佳答案 如果你喜欢它,你应该把它修剪一下:s
scala.xml包表示带有标记树节点的XML。但是在Scala2.7中这棵树是单向的吗,因为似乎没有办法访问给定Elem的Elem父级?这同样适用于父Document。例如,在XOM中,您有getParent和getDocument访问器来导航到树的根。这可以用Scala的XMLAPI完成吗? 最佳答案 正如其他人所提到的,没有父链接可以使它们成为高效的不可变结构。例如:scala>vala=mea:scala.xml.Elem=mescala>valb=a.child(0)b:scala.xml.Node=mescala>val
编译器中的代码如下:abstractclassquery{defget:Unit=>scala.xml.Elem}给我错误:“objectxmlisnotamemberofpackagescala”然而,当我通过命令行在sbt中使用scala.xml.Elem时,它工作得很好,我该如何解决这个问题?提前致谢 最佳答案 Scala-XML已分解为separatelibrary从Scala2.11开始,默认情况下它不包含在Scala项目中。要通过sbt将其包含在您的项目中,请添加此依赖项:libraryDependencies+="or
我正在研究在Scala和XML之间编码/解码数据的各种方法,并且我有兴趣获得社区反馈(最好基于第一手知识/经验)。我们目前正在使用JAXB,这很好,但我希望使用纯Scala解决方案。我正在考虑以下方法:使用Scala的内置XML工具:Scala->XML会很容易,但我猜另一个方向会相当痛苦。另一方面,这种方法支持任意翻译逻辑。数据绑定(bind):scalaxb目前似乎有些不成熟,不能处理我们当前的模式,而且我不知道Scala的任何其他数据绑定(bind)库。与JAXB一样,需要一个额外的转换层来支持相关的转换。XMLpickler组合器:GDataScalaClient库提供XMLp
如何使用Scala将xml文档解析为流?我在java中使用StaxAPI来完成此操作,但我想知道是否有“scala”方法来执行此操作。 最佳答案 使用包scala.xml.pull。摘自Scala2.8的Scaladoc的片段:importscala.xml.pull._importscala.io.Sourceobjectreader{valsrc=Source.fromString("")valer=newXMLEventReader(src)defmain(args:Array[String]){while(er.hasNex
我想在使用Scala解析xml文件时偶尔忽略dtd规范。我知道这可以很容易地通过java接口(interface)完成DocumentBuilderFactorydbf=DocumentBuilderFactory.newInstance();dbf.setValidating(false);dbf.setFeature("http://xml.org/sax/features/namespaces",false);dbf.setFeature("http://xml.org/sax/features/validation",false);dbf.setFeature("http://
我目前开始研究使用Scala的XML支持业务关键流程。在这方面,我想知道Scala中标准XML库的当前状态。我读过一些与Scala2.7和2.8trunk相关的“旧”文章,其中指出XML处理对于scala2.8来说是线程安全的,并且在2.7.x版本中有几个错误。也有人对XML类层次结构提出了批评,但我想这只是个人喜好问题。所以我想如果有人能回答这个问题,2.9.x版的ScalaXML库的当前状态是什么?提前致谢。 最佳答案 Scala中有一个可用于XML的替代库,Anti-XML。来自主页:Anti-XMLisaproposedre