考慮使用序列解析,太。它們對於處理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