0

XML構造をより明確にするために、すべてのタグを1行で記述します。

残念ながら、結果には(テキストに変換した後)複数の行が含まれているため、アサーションは失敗しました。結果全体を改行なしの単一行として必要です

val row = <row>
            <fromSubsystem>02</fromSubsystem>
            <toSubsystem>01</toSubsystem>
            <action>E013</action>
            <comment>return to customer</comment>
          </row>

println("==> " + row.text)  

assert(row.text == "0201E013return to customer")   

==> 
             02
             01
             E013
             return to customer
Exception in thread "main" java.lang.AssertionError: assertion failed
    at scala.Predef$.assert(Predef.scala:146)

エレガントなソリューションを事前に感謝します!

ポンゴ

4

3 に答える 3

4
row.child.map(_.text.trim).mkString
于 2012-05-24T14:15:38.137 に答える
0

正規表現を使ってみませんか?

assert(row.text.replaceAll("\n[ ]+","") == "0201E013") 

//or just "\n +" in replaceAll

正規表現が気に入らず、タグのテキスト内のスペースを気にしない場合は、次のようにすることができます。

assert(row.text.filterNot(Set(' ','\n')) == "0201E013") 
于 2012-05-24T13:55:10.177 に答える
0

アサーションを次のように変更します。

assert(row.text.split('\n').map(_.trim).mkString == "0201E013return to customer")
于 2012-05-24T14:17:30.960 に答える