def validateXml(xml){
String xsd = "src/main/ressources/fulltext-documents-v1.2.3.xsd"
def factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI)
def schema = factory.newSchema(new StreamSource(new File(xsd)))
def validator = schema.newValidator()
validator.validate(new StreamSource(new StringReader(xml)))
}
这是我验证 xml 文档的字符串表示形式的函数。在另一个捕获验证器可能引发的异常的函数下方
def xmlVerification(xml) {
Node rootNode = new XmlParser().parseText(xml)
def stringXml = XmlUtil.serialize(rootNode)
try{
validateXml(stringXml)
println "no error in text"
}catch(SAXParseException e){
println "column number "+e.getColumnNumber()
println "line number"+e.getLineNumber()
}
}
现在它只显示引发异常的列和行号(目前对我来说已经足够了)。
现在,假设我有一个至少有 2 个错误的文档。我希望得到这两个错误(例如在表格中)然后处理它们。使用我的代码,它会在引发的第一个异常时停止,因此我无法处理这 2 个错误。我必须更正第一个才能更正第二个(通过第二次重新运行我的代码)。
知道如何浏览整个文档,存储所有异常并在 .each{} 循环或类似的东西中处理它们吗?
希望它足够清楚
提前致谢 !