在Jenkins文件中将xml转换为json
当我试图将xml转换为json时,Jenkins文件中的一个方法出现问题。这就是方法和管道。 我试图将该方法直接传递给echo,但它给了我一个错误,管道失败 很抱歉,我不知道我可以提供关于错误的详细信息,因为我开始学习,这是我第一次看到这段代码 错误:org.xml.sax.SAXParseException;行号:2;列数:1;prolog中不允许包含内容 我编辑我的问题,并在阶段OWASP依赖项测试中添加一个bat。这个bat自动创建xml,我放入了一个验证器xml,这没有错误。因此,我不知道问题是否出在Jenkinsfile或xml的代码上,因为错误是相同的。我放了一部分xml代码,因为它很长,但是 错误仍然在第二行 XML代码:在Jenkins文件中将xml转换为json,json,xml,jenkins-pipeline,Json,Xml,Jenkins Pipeline,当我试图将xml转换为json时,Jenkins文件中的一个方法出现问题。这就是方法和管道。 我试图将该方法直接传递给echo,但它给了我一个错误,管道失败 很抱歉,我不知道我可以提供关于错误的详细信息,因为我开始学习,这是我第一次看到这段代码 错误:org.xml.sax.SAXParseException;行号:2;列数:1;prolog中不允许包含内容 我编辑我的问题,并在阶段OWASP依赖项测试中添加一个bat。这个bat自动创建xml,我放入了一个验证器xml,这没有错误。因此,我不知
<?xml version="1.0" encoding="UTF-8"?>
<analysis xmlns="https://jeremylong.github.io/DependencyCheck/dependency-check.2.2.xsd">
<scanInfo>
<engineVersion>5.2.2</engineVersion>
<dataSource>
<name>NVD CVE Checked</name>
<timestamp>2019-11-25T09:01:51</timestamp>
</dataSource>
<datasource>...</datasource>
</scanInfo>
....................
</analysis>
5.2.2
NVD CVE检查
2019-11-25T09:01:51
...
....................
import groovy.json.*;
def getDependencyResumeFromXML(路径报告){
defxml=bat(脚本:'type'+pathReport,returnStdout:true);
def x=new XmlParser().parseText(xml);
def nDep=x.dependencies.dependency.size();
def依赖项=[:];
对于(def i=0;来自XML解析器的错误是提示:“prolog中不允许内容”。这表示传递给脚本的XML似乎格式错误(即无效XML)。您应该首先在web浏览器中打开XML文件-如果失败并出现相同的错误,则修复XML文件。我编辑我的问题是因为我认为有必要使用XML代码@KimbertThe XML看起来不错,但这并不意味着它在提交给Jenkins XML解析器时是格式良好的文档。有时会产生XML解析错误当XML文档的字符编码不正确时(例如UTF-16而不是UTF-8)。
import groovy.json.*;
def getDependencyResumeFromXML(pathReport){
def xml = bat(script:'type ' + pathReport, returnStdout:true);
def x = new XmlParser().parseText(xml);
def nDep = x.dependencies.dependency.size();
def dependencies = [:];
for(def i=0;i<nDep;i++){
dependencies[i] = [fileName: x.dependencies.dependency[i].fileName.text(),description:x.dependencies.dependency[i].description.text(),vulnerabilities:[:]];
def nVul = x.dependencies.dependency[i].vulnerabilities.vulnerability.size();
for(def j=0;j<nVul;j++){
dependencies[i].vulnerabilities[j] = [
name:x.dependencies.dependency[i].vulnerabilities.vulnerability[j].name.text(), cvssScore:x.dependencies.dependency[i].vulnerabilities.vulnerability[j].cvssScore.text(),
severity:x.dependencies.dependency[i].vulnerabilities.vulnerability[j].severity.text(),
cwe:x.dependencies.dependency[i].vulnerabilities.vulnerability[j].cwe.text(),
description:x.dependencies.dependency[i].vulnerabilities.vulnerability[j].description.text(),
];
}
}
return dependencies;
}
pipeline{
.......
stages{
stage('OWASP dependencies testing'){
steps{
script{
bat 'mvn org.owasp:dependency-check-maven:check';
def pathReport = 'C:\\tmp\\workspace\\umbrella-pipeline-prueba\\target\\dependency-check\\dependency-check-report.xml';
def xml = bat(script:'type ' + pathReport, returnStdout:true);
echo '------------------ 1';
echo xml;
echo '------------------ 2';
echo '--------------------------------'
def dependencias = getDependencyResumeFromXML(pathReport);
echo '------------- 3';
echo dependencias;
echo '------------- 4';
}
}
}
}
}