Scala中的XML解析似乎并不像它应该的那样简单和直接。我需要的是类似于JavaScript中的document.getElementsByTagName(name)的行为,但出于我的目的,我需要的只是特定标记名称的第一个元素。这是我最终得到的结果:importscala.xml.{Document,Elem,Node}importscala.xml.parsing.ConstructingParserdef_getFirstMatchingElementByName(search:String,n:Node):Option[Node]={if(n.label==search){So
完整错误信息:java.nio.charset.UnmappableCharacterException:Inputlength=1atjava.nio.charset.CoderResult.throwException(CoderResult.java:261)atsun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:266)atsun.nio.cs.StreamEncoder.write(StreamEncoder.java:106)atsun.nio.cs.StreamEncoder.write(StreamEncoder.
我没有在Scalazgithub存储库中找到任何对xml模块的引用。中科series/7.1.x它在但不在latest中.此外,没有任何关于使用Scalaz处理xml的文档(这很奇怪)。知道为什么吗?据我所知,没有真正可以替代大型XML处理的方法。Anti-xml已被放弃(不过no.arktekk有一个更新版本)并且scala-xml存在性能问题。您有什么值得一试的项目推荐给我吗?我知道ScalesXml,但我不太了解它。 最佳答案 不只是弃用,dead(它在7.1中被弃用后于去年夏天从7.2分支中删除——详情请参阅releasen
我正在将一些xml映射到一个案例类并且它工作正常,但我有一种感觉,我的命令性眼罩让我看不到更好的功能解决方案。谁能提出比这更好的方法:defbuildAddress(geocodeResponse:NodeSeq):Address={valaddressNodes=geocodeResponse\\"address_component"varstreet=""vartown=""varsuburb=""varprovince=""varcountry=""varpostalCode=""addressNodes.foreach{node=>valtypeString=(node\"ty
我正在编写一个工具来使用scala更新一些xml文件(在本例中为pom.xml),因为它在java中所花费的精力明显高于(理论上)在scala中的花费。我可以很好地解析xml文件,但我需要替换现有xml中的节点并重写结果。例如:foobar1.0-SNAPSHOT所以我想找到所有这样的节点并将它们替换为:foobar1.0所以,我可以很简单地获取所有版本节点,但是如何将它们替换为我想要的节点呢?//documentisalreadydefinedastheheadofthexmlfilenodes=for(node然后我想做这样的事情:for(node这不起作用,因为节点是不可变的。我
我有一个xml文件(来自联邦政府的data.gov),我试图用scala的xml处理程序读取它。valloadnode=scala.xml.XML.loadFile(filename)显然,存在无效的xml字符。是否可以选择忽略无效字符?还是我唯一的选择是先清理它?org.xml.sax.SAXParseException:AninvalidXMLcharacter(Unicode:0x12)wasfoundintheelementcontentofthedocument.Ruby的nokogiri能够用无效字符解析它。 最佳答案
我想使用spark将一个大的(51GB)XML文件(在外部硬盘上)读入数据帧(使用spark-xmlplugin),进行简单的映射/过滤,重新排序,然后将其写回磁盘,如CSV文件。但无论我如何调整它,我总是得到一个java.lang.OutOfMemoryError:Javaheapspace。我想了解为什么增加分区数不能阻止OOM错误它不应该将任务拆分成更多的部分,以便每个单独的部分更小并且不会导致内存问题吗?(Sparkcan'tpossiblybetryingtostuffeverythinginmemoryandcrashingifitdoesn'tfit,right??)我尝
在Scala上的PlayFramework中,设置json序列化就像添加一样简单implicitvalsiteReads=Json.reads[Foo]implicitvalsiteWrites=Json.writes[Foo]到模型中的Foo对象。对于XML是否有同样简单的方法来执行此操作? 最佳答案 不,目前还没有适用于Xml的等效API。但好消息是他们正在努力解决这个问题。http://jto.github.io/articles/play_new_validation_api/和http://mandubian.com/20
我很好奇组合一组包含类似的xml树的最佳方法数据到单个集合(“联合”样式)。我确实实现了一个可行的解决方案,但代码看起来很糟糕,我有一种强烈的直觉,认为必须有一种更好、更紧凑的方式实现这一点。我想做的是在最简单的情况下结合以下内容:和:收件人:关于如何在scala中干净地实现它有什么好的想法吗? 最佳答案 与valappleAndOrange:Elem=和valbanana:Elem=你可以做到valall=appleAndOrange.copy(child=appleAndOrange.child++banana.child)但是
将一个Set[String]映射到Set[Elem]的属性对一个属性可以正常工作,但是当多个属性共享其中一个时似乎会失败:scala>vals1=Set("A","B","C")s1:scala.collection.immutable.Set[java.lang.String]=Set(A,B,C)scala>s1.map((a:String)=>{})res3:scala.collection.immutable.Set[scala.xml.Elem]=Set(,,)scala>s1.map((a:String)=>{})res4:scala.collection.immutabl