| /** | 
|  * @fileoverview JSLint XML reporter | 
|  * @author Ian Christian Myers | 
|  */ | 
| "use strict"; | 
|   | 
| const xmlEscape = require("../xml-escape"); | 
|   | 
| //------------------------------------------------------------------------------ | 
| // Public Interface | 
| //------------------------------------------------------------------------------ | 
|   | 
| module.exports = function(results) { | 
|   | 
|     let output = ""; | 
|   | 
|     output += "<?xml version=\"1.0\" encoding=\"utf-8\"?>"; | 
|     output += "<jslint>"; | 
|   | 
|     results.forEach(result => { | 
|         const messages = result.messages; | 
|   | 
|         output += `<file name="${result.filePath}">`; | 
|   | 
|         messages.forEach(message => { | 
|             output += [ | 
|                 `<issue line="${message.line}"`, | 
|                 `char="${message.column}"`, | 
|                 `evidence="${xmlEscape(message.source || "")}"`, | 
|                 `reason="${xmlEscape(message.message || "")}${message.ruleId ? ` (${message.ruleId})` : ""}" />` | 
|             ].join(" "); | 
|         }); | 
|   | 
|         output += "</file>"; | 
|   | 
|     }); | 
|   | 
|     output += "</jslint>"; | 
|   | 
|     return output; | 
| }; |