Module: FIDIUS::NVDParser
- Includes:
- NVDParserModel
- Defined in:
- lib/cveparser/parser.rb
Class Method Summary collapse
-
.parse_cve_file(file) ⇒ Object
Parse Version 2.0 XML-File from nvd.nist.gov.
Class Method Details
.parse_cve_file(file) ⇒ Object
Parse Version 2.0 XML-File from nvd.nist.gov.
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/cveparser/parser.rb', line 20 def self.parse_cve_file file doc = Nokogiri::XML(File.open(file)) doc.css("nvd").each do |nvd| version = nvd.attributes['nvd_xml_version'].value if version != "2.0" puts "Your XML has the wrong version (#{version}). " + "The CVE-Parser can only handle XML-Feeds in Version 2.0." raise 'Invalid XML Version' end end start_time = Time.now puts "[*] Start parsing \"#{file}\"" entries = [] entry_count = 0 doc.css('nvd > entry').each do |entry| entries << single_entry(entry) entry_count += 1 if entry_count % 100 == 0 and entry_count > 0 puts "Parsed #{entry_count} CVE Entries." end end end_time = Time.now puts "[*] Finished parsing, parsed #{entries.size} entries in " + "#{(end_time-start_time).round} seconds." entries end |