假设我有一个类似以下的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
。
我可以尝试什么?
你能帮我一下吗?
答案 0 :(得分:5)
您需要在选定的text
上调用其他NodeSeq
方法,以便在xml 元素中提取 text 子节点
val data = XML.loadFile("conf.xml")
val st = data \\ "conf" \\ "something"
println(st.text)
我建议你trim
结果,除非你想要一些额外的免费空间......
答案 1 :(得分:1)
你可以考虑Anti-XML,这是一个很受欢迎的项目,但现在有点不受维护,所以你可能不得不自己交叉编译。
它允许您选择比这更好的文本。
参见一些例子:
"parse an elem with text" in {
fromString("<test>This is a test</test>") mustEqual elem("test", Text("This is a test"))
}