解析しているwikiページからかなりの空白が失われていますが、これはパーサーが原因だと思います。Groovyスクリプトにこれがあります:
@Grab(group='org.ccil.cowan.tagsoup', module='tagsoup', version='1.2' )
def slurper = new XmlSlurper(new org.ccil.cowan.tagsoup.Parser())
slurper.keepWhitespace = true
inputStream.withStream{ doc = slurper.parse(it)
println "originalContent = " + doc.'**'.find{ it.@id == 'editpageform' }.'**'.find { it.@name=='originalContent'}.@value
}
inputStreamがURLGETリクエストから初期化され、ConfluenceWikiページを編集する場合。後でこれを行うwithInputStreamブロックで:
println "originalContent = " + doc.'**'.find{ it.@id == 'editpageform' }.'**'.find { it.@name=='originalContent'}.@value
ページの元のコンテンツがすべて改行されていないことに気付きました。もともとはサーバー側のものだと思っていましたが、ブラウザとビューソースで同じリクエストを作成すると、「originalContent」の非表示パラメータに改行が表示されました。空白の正規化を無効にしてフィールドの内容を保持する簡単な方法はありますか?上記は、内部のConfluence wikiページに対して実行されましたが、任意のwikiページを編集するときにおそらく非難される可能性があります。
上記で更新 した空白を保持するために「slurped.keepWhitespace=true」の呼び出しを追加しましたが、それでも機能しません。このメソッドは属性ではなく要素を対象としていると思いますか?基盤となるJavaXMLParserのフラグを簡単に微調整する方法はありますか?属性値の空白に設定する特定の設定はありますか?