考虑使用序列解析,太。它们对于处理XML很有用,特别是在需要复杂条件时。
对于简单的情况:
for {
c <- rssFeed \\ "@date"
} yield c
使你从RSSFeed中的一切日期属性。
但如果你想更复杂的东西:
val rssFeed = <rss version="2.0">
<channel>
<item>
<y:c date="AA"></y:c>
<y:c date="AB"></y:c>
<y:c date="AC"></y:c>
</item>
</channel>
</rss>
val sep = "\n----\n"
for {
channel <- rssFeed \ "channel"
item <- channel \ "item"
y <- item \ "c"
date <- y \ "@date" if (date text).equals("AA")
} yield {
val s = List(channel, item, y, date).mkString(sep)
println(s)
}
为您提供:
<channel>
<item>
<y:c date="AA"></y:c>
<y:c date="AB"></y:c>
<y:c date="AC"></y:c>
</item>
</channel>
----
<item>
<y:c date="AA"></y:c>
<y:c date="AB"></y:c>
<y:c date="AC"></y:c>
</item>
----
<y:c date="AA"></y:c>
----
AA
'rssFeed'?它不应该是'rss'吗? – VonC 2010-05-17 17:48:41
rssFeed是一个包含RSS数据的变量 – Chris 2010-05-17 17:52:38