Estoy perdiendo espacios en blanco significativos de una página wiki que estoy analizando y estoy pensando que es por el analizador sintáctico. Tengo esto en mi guión maravilloso:XMLParser está comiendo mi espacio en blanco
@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]
}
Dónde flujoEntrada se inicia a partir de una solicitud de URL GET para editar una página wiki de confluencia. Más tarde, en el bloque withInputStream donde hago esto:
println "originalContent = " + doc.'**'.find{ [email protected] == 'editpageform' }.'**'.find { [email protected]=='originalContent'}[email protected]
Me he dado cuenta de todo el contenido original de la página es despojado de sus nuevas líneas. Originalmente pensé que era algo del lado del servidor, pero cuando fui a hacer la misma solicitud en mi navegador y ver fuente, pude ver nuevas líneas en el parámetro oculto "originalContent". ¿Hay alguna manera fácil de desactivar la normalización del espacio en blanco y conservar el contenido del campo? Lo anterior se ejecutó contra una página wiki interna de Confluence, pero es muy probable que se reproduzca al editar cualquier página wiki arbitraria.
Actualizado por encima de que añade una llamada a "slurped.keepWhitespace = true" en un intento de preservar los espacios en blanco, pero que todavía no funciona. Estoy pensando que este método está destinado a elementos y no a atributos. ¿Hay alguna manera de modificar fácilmente las banderas en Java XMLParser subyacente? ¿Hay una configuración específica para establecer espacios en blanco en los valores de los atributos?
Eso es lo que sucede cuando usted mantiene sus analizadores hambre ;-) (lo siento, no pude resistir) – dasblinkenlight
Así que si usted dice whitespache, que significa sólo saltos de línea? Y si dice que las partes nuevas no se eliminan, ¿solo se convierten? Afaik XML solo tiene linefeed para nuevas líneas. – blackdrag
Creo que hay un problema sobre esto [en Groovy JIRA] (http://jira.codehaus.org/browse/GROOVY-5360) –