2013-04-04 89 views
2

假设我有这样一个XML文件中的以下内容:阅读一个XML文件中的文本内容

<conf> 
    <something> 
    blablabla 
    </something> 
</conf> 

我要检索的字符串blablabla

我尝试:

val data = XML.loadFile("conf.xml") 
val st = data \\ "conf" \\ "something" 
println(st) 

但作为输出我得到了:

<something>blablabla</something> 

在我加入的代码行:

st match { 
     case <something>{ txt }</something> => println(txt) 
} 

,但我有一个scala.MatchError

我该怎么办?

你能帮我一些吗?

回答

5

你需要调用额外的text方法选定NodeSeq到你的XML中提取文本子节点元素

val data = XML.loadFile("conf.xml") 
val st = data \\ "conf" \\ "something" 
println(st.text) 

我s也请你也trim的结果,除非你想要一些额外的空间免费...

+0

非常感谢。你能给我一些关于这种修剪的细节吗? – Aslan986 2013-04-04 19:12:02

+2

println(st.text.trim) – Noah 2013-04-04 19:19:49

+0

修剪可删除字符串周围的空白 – 2013-04-05 00:26:23