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")))
これははるかに醜いです。元のクエリが機能しない既知の理由はありますか?