2

次のような 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ます。

何を試すことができますか?

助けてもらえますか?

4

2 に答える 2

5

xml要素内のテキストサブノードを抽出するtextには、selected で追加のメソッドを呼び出す必要があります。NodeSeq

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

無料で余分なスペースが必要でない限り、結果もお勧めしますtrim...

于 2013-04-04T18:24:56.823 に答える
1

しばらく前に大いに支持されたプロジェクトであるAnti-XMLを考慮することができますが、現在は少し保守されていないため、自分でクロスコンパイルする必要がある場合があります。

それよりもはるかに優れたテキストを選択できるようになります。

いくつかの例を参照してください。

 "parse an elem with text" in {
  fromString("<test>This is a test</test>") mustEqual elem("test", Text("This is a test"))
 }

https://github.com/djspiewak/anti-xml/blob/master/src/test/scala/com/codecommit/antixml/XMLSpecs.scala

于 2013-04-04T18:17:27.803 に答える