diff --git a/.gitignore b/.gitignore index 1f9f1a7..2a3699b 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ out/* corpus-resources/ .vscode +Dockerfile.debug diff --git a/xml.go b/xml.go index ce9ef87..016fc74 100644 --- a/xml.go +++ b/xml.go @@ -8,7 +8,7 @@ "os/exec" "regexp" "strings" - + "github.com/antchfx/xmlquery" "github.com/antchfx/xpath" "github.com/goccy/go-json" @@ -20,7 +20,7 @@ var regexLineWellFormed = regexp.MustCompile("line ([0-9]{1,}) ") var regexErrorWellFormedMessage = regexp.MustCompile(` ([A-Z].*)\^`) -var regexLineValidation = regexp.MustCompile(`:([0-9]{1,}):`) +var regexLineValidation = regexp.MustCompile(`:([-]?[0-9]{1,}):`) var regexErrorValidationMessage = regexp.MustCompile(` ([A-Z].*)\n`) func ProcessXML(message *GeneralInfo, logger *logrus.Entry) { @@ -115,8 +115,9 @@ errorsMessages := regexErrorValidationMessage.FindAllStringSubmatch(resultError, -1) linesMessages := regexLineValidation.FindAllStringSubmatch(resultError, -1) if errorsMessages != nil && linesMessages != nil { + //fmt.Print("errorsMessages: ", errorsMessages) for i := 0; i < len(errorsMessages); i++ { - if errorsMessages[i] != nil || linesMessages[i] != nil { + if errorsMessages[i] != nil && len(linesMessages) > i && linesMessages[i] != nil { listError = append(listError, ErrorXML{Message: strings.NewReplacer(`"`, "").Replace(errorsMessages[i][1]), Line: linesMessages[i][1], File: file}) } } @@ -146,6 +147,7 @@ xmlDetailled.isValidAgainstDTD = true xmlDetailled.validationDTDInfos = dtdPath } else { + //fmt.Println("result de xmlstarlet: ", string(result)) errors := FormatValidationError(string(result), dtdPath) if len(errors) > 0 { xmlDetailled.validationsErrors = append(xmlDetailled.validationsErrors, errors...)