11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# File 'lib/ruby_arachni.rb', line 11
def self.parse(path)
issues = []
doc = Nokogiri::XML(File.open(path))
doc.xpath('//issues/issue').map do |xml_issue|
issue = RarIssue.new
[:name, :description, :remedy_guidance, :remedy_code, :severity, :cwe, :digest,
:remarks, :page, :referring_page, :signature, :proof, :trusted, :platform_type,
:platform_name].each do |field|
issue.send("#{field.to_s}=", xml_issue.css(field.to_s).text)
end
check = xml_issue.css('check')
issue.check = RarCheck.parse(check) if !check.nil?
vector = xml_issue.css('vector')
issue.vector = RarVector.parse(vector) if !vector.nil?
issue.references = []
references = xml_issue.css('references')
if !references.nil?
references.css('reference').each do |reference|
issue.references.push(RarReference.parse(reference))
end
end
issues.push issue
end
issues
end
|