Я использую класс groovy.xml.DOMBuilder
для анализа XML в Document
объект. К сожалению, методы parseText
добавляют пустую строку после каждого перевода строки. Как это поведение может быть изменено таким образом, что не добавляются пустые строки.
В следующем блоке кода показано содержимое файла XML, который обрабатывается DOMBuilder
<?xml version="1.0" encoding="UTF-8"?>
<test>
<h1>tag</h1>
</test>
. Консольный вывод объекта Document
выглядит следующим образом:
<?xml version="1.0" encoding="UTF-8"?><test>
<h1>tag</h1>
</test>
Откуда берутся пустые строки?
Вот небольшой скрипт groovy, который производит вывод:
import groovy.xml.DOMBuilder
import groovy.xml.XmlNodePrinter
import groovy.xml.XmlUtil
import org.w3c.dom.Document
import java.nio.file.Paths
class XMLParser {
static void main(String[] args) {
println "Arguments: ${args}"
File xml = Paths.get(args[0]).toFile()
println "XML file object: ${xml}"
String xmlContent = xml.getText('UTF-8')
println "XML file content before parsing: ${xmlContent}"
Document doc = DOMBuilder.newInstance().parseText(xmlContent)
println "Document object: ${doc.documentElement}"
println "XmlNodePrinter: "
new XmlNodePrinter(preserveWhitespace:false).print(doc.documentElement)
String result = XmlUtil.serialize(doc.documentElement)
println "Serialized pom: ${result}"
}
}