草庐IT

scala-option

全部标签

xml - Scala:jaxb 或类似的?

作为一名Java程序员,我对使用JAXB和类似工具感到很自在,例如从XML规范构造对象。我确定我可以让JAXB在scala中很好地工作,但我想知道如果这是scala的方式,或者如果有一些更好/更聪明的方式,特别是因为XML几乎是语言/它的内部库。所以,鉴于我想创建一组对象形式的XML规范,在Scala中推荐的方法是什么? 最佳答案 对于纯Scala,有scalaxb.它基于Scala解析器组合器生成案例类和解析器。它还很年轻,但如果您避开XMLSchema的高级功能,它就非常有用。 关于

xml - 选择scala中节点的所有子元素

我想选择名为“a”的节点的第一个子元素。我现在得到的是:(xml\"a")(0).child.collect{casee:Elem=>e}这很冗长。我在寻找类似的东西:xml\"a"\"*"这在Scala中可行吗? 最佳答案 您不能对NodeSeq上的现有\或\\方法执行任何操作。但是您可以使用新的\*方法扩展NodeSeq(注意缺少或空格字符),按照pimp-your-library模式:importxml.{NodeSeq,Elem}classChildSelectable(ns:NodeSeq){def\*=nsflatMap

xml - scala 2.11 中的 xml 模块化将如何处理 xml 文字?

阅读Scala2.11.0-RC1的发行说明,我注意到从2.11系列开始将scalaxml拆分到一个单独的jar。这会影响xml文字的使用,在2.11或后续版本中吗?显然,如果您使用xml文字,您还需要scalaxmljar——我想知道是否也有计划弃用xml文字。顺便说一句,我觉得Scala对XML的支持被认为是一个错误。作为一名语言用户,我当然对文字和插值的支持感到非常高兴。我发现MetaData和UnprefixedAttribute在处理属性方面有些笨拙,但并不可怕。scalaxml的主要问题是什么? 最佳答案 有athrea

xml - 如何使用 scala.xml 添加 xml 文档信息?

首先:我知道反xml和缩放,但我想使用标准的scala.xml我更喜欢使用显式方法构建xml文档,而不是使用Scala中内置的隐式xml语法好的,所以我有这样一段代码:valtext=newscala.xml.Text("justatext")valroot=newscala.xml.Elem(null,"element",null,scala.xml.TopScope,text)valdoc=newscala.xml.Document()doc.docElem=rootprintln(doc.toString())几乎不错,但结果我得到:justatext我也想获取XMLheader

xml - 在 scala 中以 UTF-8 读取 xml

我正在尝试使用以下代码将文件读取为xml:importscala.xml._objectHebrewToEnglishCityTranslator{valdata=XML.loadFile("cities_hebrew_utf.xml");for(valentry但是,我的文件是用UTF-8(希伯来字符)编码的,XML编码是valencoding="ISO-8859-1"我该怎么办? 最佳答案 您应该使用XML.load(reader:java.io.Reader),它允许您指定文件编码:XML.load(newjava.io.In

xml - 使用scala查找具有与特定值匹配的属性的所有节点

我在Nabble上看到了下面的例子,其目标是返回所有包含id为X且包含值Y的属性的节点://findallnodeswithanattribute"class"thatcontainsthevalue"test"valxml=XML.loadString("""hellohello""")defattributeEquals(name:String,value:String)(node:Node)={node.attribute(name).filter(_==value).isDefined}valtestResults=(xml\\"_").filter(attributeEqua

xml - Scala XML 模式匹配和属性

首先:我在Scala2.8我在XML元素上使用模式匹配时遇到一个小问题。我知道我可以做这样的事情:valmyXML=MyTextmyXMLmatch{case{theText}=>println(theText)case_=>}这是我在网上和我的两本Scala书籍中到处都能找到的例子。但是,如果我想根据属性匹配XML元素怎么办?valmyXML=AnawesomeText!myXMLmatch{case{theText}=>println("An%stext:%s".format(textType,theText))case_=>}编译器将向我抛出一个error:inXMLlitera

xml - Scala:XML 属性解析

我正在尝试为属性“日期”解析一个看起来像这样的rss提要:我尝试了几个不同的版本:(rssFeed包含RSS数据)println(((rssFeed\\"channel"\\"item"\"y:c"\"date").toString))但似乎没有任何效果。我错过了什么?非常感谢任何帮助! 最佳答案 中的“y”是命名空间前缀。它不是名称的一部分。此外,属性用“@”引用。试试这个:println(((rssFeed\\"channel"\\"item"\"c"\"@date").toString))

xml - Scala:XML 解析命名空间属性

在下面的示例中,一旦属性“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内。例如

xml - Scala:如何从一些集合中创建 XML 节点

如果你有这样的事情:valmyStuff=Array(Person("joe",40),Person("mary",35))如何使用该数据作为节点创建XML值?我知道如何在XML表达式中使用{braces}来放置值,但这是值的集合。我需要显式迭代还是有更好的方法?valmyXml={/*whathere?!*/}结果值应该是这样的:joe40mary39 最佳答案 因为它是一种函数式编程语言,Array.map可能就是您正在寻找的:classPerson(name:String,age:Int){deftoXml()={name}{