用于过滤XML的Scala?

用于过滤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

我希望能够使用以下内容查找标题为的CD:

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=>}
。但这是没有必要的。有关更多详细信息,请参阅。