用于过滤XML的Scala?
我希望能够使用以下内容查找标题为的CD:用于过滤XML的Scala?,xml,scala,Xml,Scala,我希望能够使用以下内容查找标题为的CD: val empire = cdPrices find { case( cd, _, _) => cd == "Empire Burlesque" } println(empire) 上述方法不起作用,因为我得到“构造函数无法实例化为预期类型” 尝试以下替代语法时,会出现与类型相关的错误: val (empire, price, year) = cdPrices find (_._1 == "Empire Burl
val empire =
cdPrices find { case( cd, _, _) =>
cd == "Empire Burlesque"
}
println(empire)
上述方法不起作用,因为我得到“构造函数无法实例化为预期类型”
尝试以下替代语法时,会出现与类型相关的错误:
val (empire, price, year) = cdPrices find (_._1 == "Empire Burlesque")
getOrElse("Empire Burlesque", "10","1985")
正确的语法是什么
我的XML如下:我不确定我是否理解你的问题,但也许你在寻找类似的东西 以下代码返回
Empire Bullesque…
如果找到,如果找不到节点,则返回Empire Bullesque Not found
val root = scala.xml.XML.loadFile("cd_catalog.xml")
val cd = (root \ "CD" ).find{x => (x \ "TITLE").text == "Empire Burlesque"}
.getOrElse{<CD><TITLE>Empire Burlesque Not Found</TITLE></CD>}
println(cd)
val root=scala.xml.xml.loadFile(“cd_catalog.xml”)
val cd=(根\“cd”)。查找{x=>(x \“TITLE”)。text==“帝国滑稽剧”}
.getOrElse{未找到帝国滑稽剧}
println(光盘)
查证
对于
\
运算符的含义,以及\
递归搜索时的方便性。什么是cdPrices,以及如何计算cdPrices的值。什么是“关于类型的错误”。细节,细节!对我来说,第一段代码是编译的。第二个给出了“构造函数不能是…”错误,但这是一个优先问题-添加这样的参数(cdPrices find(u.\u 1==“Empire Bullesque”)
,它可以工作。将关闭标记为印刷错误,据我所知,这与XML无关,或者对于理解来说,只是缺少parens您的getOrElse参数也应该在其他parens中,因为它需要是一个元组(编译器为您执行此操作,并带有警告),您可以不使用,也不应该使用“case”参数?我不明白那个评论。Sorry您可以也不应该使用“case”参数吗?如果您使用{case x=>..}
它将是部分函数
,它是scala.Function1
的子类。在这种情况下,您可以使用{case x=>}
。但这是没有必要的。有关更多详细信息,请参阅。