我正在尝试使用 scala 运行 XPath 查询,但它似乎不起作用。我的 Xml 看起来像(简化):
<application>
<process type="output" size ="23">
<channel offset="0"/>
....
<channel offset="4"/>
</process>
<process type="input" size ="16">
<channel offset="20"/>
....
<channel offset="24"/>
</process>
</application>
我想process
用input
属性检索 ,为此我使用这个 XPath 查询:
//process[@type='input']
这应该可行,我用xpathtester验证了它 现在,我的 scala 代码如下所示:
import scala.xml._
val x = XML.loadFile("file.xml")
val process = (x \\ "process[@type='input']") // will return empty NodeSeq() !!!
最终process
是空的,它没有捕捉到我想要的东西。我是这样解决的:
val process = (x \\ "process" filter( _ \"@type" contains Text("input")))
这更丑陋。为什么我的原始查询不起作用的任何已知原因?