假设我有一个像这样的XML
val myXml: NodeSeq = scala.xml.Utility.trim(<a>
<b>
<c>Mom</c>
</b>
<b>
<c>Dad</c>
</b>
<notb>
<c>foo</c>
<c>bar</c>
</notb>
</a>)
如何从这样的xpath中检索“妈妈”和“爸爸”? "b/c"
答案 0 :(得分:2)
使用foldLeft,可以检索所有元素
"b/c"
.split('/')
.foldLeft(myXml)((node, path) => node \ path)
输出:
res0: scala.xml.NodeSeq = <c>Mom</c><c>Dad</c>
甚至可以使用“通配符”来匹配每个孩子
"_/c"
.split('/')
.foldLeft(myXml)((node, path) => node \ path)
输出:
res1: scala.xml.NodeSeq = <c>Mom</c><c>Dad</c><c>foo</c><c>bar</c>