草庐IT

xml - 如何创建一个从标准输入读取的 Scala XMLEventReader?

我希望能够将XML文件通过管道传输到程序中,并使用XMLEventReader读取它。我能为XMLEventReader找到的唯一构造函数将Source作为参数,但scala.io.StdIn不是Source而且我找不到任何方法将它变成Source。可以做到吗?如果可以,怎么做? 最佳答案 您可以使用java.lang.System.in作为InputStream或scala.Console.in作为BufferedReader。更喜欢后者,因为它可以在测试中轻松修改(使用Console.withIn)。importjavax.xm

json - 使用 circe 递归地将 JSON 树转换为其他格式(XML、CSV 等)

为了使用circe将JSON节点转换为JSON以外的其他格式(如XML、CSV等),我想出了一个解决方案,我必须访问circe的内部数据结构。这是我将JSON转换为XML字符串的工作示例(并不完美,但您明白了):packageio.circeimportio.circe.Json.{JArray,JBoolean,JNull,JNumber,JObject,JString}importio.circe.parser.parseobjectSampleextendsApp{deftransformToXMLString(js:Json):String=jsmatch{caseJNull=

xml - Scala 解析器组合器解析 xml?

scala的解析器组合器能否解析xml并验证结束标记是否与开始标记同名?我并不直接需要它,但我想知道我的库的限制。 最佳答案 是的,它可以做到这一点。使用into或>>>(实际上是同一回事)根据已解析的值对后一个解析器进行参数化。 关于xml-Scala解析器组合器解析xml?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5271010/

xml - scala.xml.PrettyPrinter 在没有文本时格式化较短的节点

我使用scala.xml.PrettyPrinter在Scala中格式化我的XML。问题在于没有文本内容的节点。而不是这个:我更喜欢这个:我怎样才能使PrettyPrinter以我的方式格式化它? 最佳答案 这是scala-xml中的一个错误,但已在2018年2月20日的1.1.0版中修复。新选项minimizeEmpty已添加到PrettyPrinter.要使用1.1.0,请将以下内容添加到您的build.sbt:libraryDependencies++=Seq("org.scala-lang.modules"%%"scala-

xml - 关于查找具有与 Scala 特定值匹配的属性的所有节点

我看到之前在这里讨论的以下示例,其目标是返回包含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(attributeEquals

xml - NodeSeq 匹配失败,但等效的 Elem 匹配成功——为什么?怎么修?

好吧,这让我(Scala的菜鸟)和我的同事(Scala的更高级)都感到困惑。斯卡拉2.8.0。这是问题的演示://I'vegotavarwithsomeXMLinitscala>qq2res9:scala.xml.Elem=A1B1C1D1//Icanextractsub-elementsscala>(qq2\"bs")res10:scala.xml.NodeSeq=NodeSeq(B1C1D1)//butifItrytomatchagainstthisNodeSeq,itfailstomatchscala>(qq2\"bs")match{case{x@_*}=>for(xxB1C1D

xml - 如何使用 scala Elem 生成 jersey text/xml?

我已经编写了一个通用方法来通过scala.xml库生成Elem类型。但是Jersey使用JAXB,意味着将xml信息与Java对象绑定(bind)。我怎么能简单地响应scala的Elem类型避免构造对象?简单代码为:@GET@Path("sitemap.xml")@Produces(Array(MediaType.APPLICATION_XML))defsitemap(@Contextclient:DaoService[Future])={valx:Elem=Common.defaultXml()x} 最佳答案 您将需要一个自定义的

xml - 如何使用 scala 中的 spark xml 解析器解析 XML 中的字符串?

我尝试做的是使用XML解析器解析字符串。我只找到这种在scala中使用Spark进行解析的方法:valdf=sqlContext.read.format("com.databricks.spark.xml").option("rowTag","book").load("books.xml")我需要解析的是一个字符串,而不是一个文件那么,是否有加载字符串(而不是文件路径)的选项?谢谢! 最佳答案 从下面的字符串创建一个RDD,valxmlStringRDD=sc.parallelize(List("Yourxmlstring"))然后

xml - 无法选择正确的组合器进行解析并在 Scala 中处理它

我有这段代码涉及scala的Parsers类:traitSomeTraitextendsSomeTrait2{defmyParse={phrase(rep(ElemName(Some("http://someUri/"),"someNode1")~//compileswell,butfailssometimesatruntimeElemName(Some("http://someUri/"),"someNode2")^^{casep1~p2⇒//......})^^{casep1⇒//....})}}在哪里caseclassElemName(namespace:Option[Strin

xml - 从 Either[String,Option[NodeSeq]] 中提取元素值的优雅方法

假设我得到了如下XML:helloworldagain我得到一个函数:getXmlStream,它具有以下签名:defgetXmlStream(xmlPath:String):Either[String,Option[NodeSeq]]当我调用getXmlStream并传入路径时,我会得到Either,左边是错误,右边是Option[NodeSeq]。现在,如果NodeSeq不是None,我需要获取元素和的值,它们分别是“hello”和“world”。我尝试将元素取出如下:valelems=(getXmlStream(xmlFilePath))match{caseLeft(error: