草庐IT

rx-scala

全部标签

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}{

xml - 在单元测试中比较 scala.xml.Elem 对象

我有两个scala.xml.Elem对象(实际的,预期的)。我使用的是JUnit4,但也包括XMLUnit1.3。是否有任何简单的方法来比较两个对象是否相等,忽略XML中的属性顺序和无关紧要的空格?我尝试了XMLUnit.assertXMLEqual(),但它提示说类型是scala.xml.Elem。我知道我可以使用equals或==,但我希望在两个值不相等时让断言打印这两个值的好处。如果我使用assertTrue(actual.equals(expected)),并且它们不相等,则唯一的输出将是“断言失败”。 最佳答案 如果您想与

xml - 为什么 Scala XML 文字对标签之间的空格敏感?

我发现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

xml - 如何访问 Scala XML 中的父元素

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