Sto perdendo uno spazio vuoto significativo da una pagina wiki che sto analizzando e penso che sia dovuto al parser. Ho questo nel mio script Groovy:XMLParser sta mangiando il mio spazio vuoto
@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{ [email protected] == 'editpageform' }.'**'.find { [email protected]=='originalContent'}[email protected]
}
Dove inputStream viene inizializzato da una richiesta GET URL per modificare una pagina wiki confluenza. Più tardi nel blocco withInputStream cui faccio questo:
println "originalContent = " + doc.'**'.find{ [email protected] == 'editpageform' }.'**'.find { [email protected]=='originalContent'}[email protected]
noto tutto il contenuto originale della pagina è spogliato delle sue nuove righe. Inizialmente pensavo che fosse una cosa lato server, ma quando sono andato a fare lo stesso req nel mio browser e visualizzare la fonte, ho potuto vedere le nuove righe nel parametro nascosto "originalContent". C'è un modo semplice per disabilitare la normalizzazione degli spazi bianchi e preservare il contenuto del campo? Quanto sopra è stato eseguito su una pagina wiki interna di Confluence, ma molto probabilmente potrebbe essere rimossa durante la modifica di qualsiasi pagina wiki arbitraria.
Aggiornato sopra ho aggiunto un invito a "slurped.keepWhitespace = true", nel tentativo di preservare gli spazi bianchi, ma che ancora non funziona. Sto pensando che questo metodo è inteso per elementi e non attributi? C'è un modo per modificare facilmente i flag sul Java XMLParser sottostante? Esiste un'impostazione specifica per impostare gli spazi bianchi nei valori degli attributi?
Questo è ciò che succede quando si mantenere i parser fame ;-) (mi dispiace, non ho potuto resistere) – dasblinkenlight
Quindi se dici whitespache, vuoi dire solo a capo? E se dici che le parti di nuova riga non vengono rimosse, vengono solo convertite? Afaik XML ha solo linefeed per i newline. – blackdrag
Credo che ci sia un problema a riguardo [nel Groovy JIRA] (http://jira.codehaus.org/browse/GROOVY-5360) –