NmapXmlParser 1.0.0

This package has a SemVer 2.0.0 package version: 1.0.0+39.
dotnet add package NmapXmlParser --version 1.0.0
                    
NuGet\Install-Package NmapXmlParser -Version 1.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="NmapXmlParser" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="NmapXmlParser" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="NmapXmlParser" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add NmapXmlParser --version 1.0.0
                    
#r "nuget: NmapXmlParser, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package NmapXmlParser@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=NmapXmlParser&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=NmapXmlParser&version=1.0.0
                    
Install as a Cake Tool

NmapXmlParser

A .NET Standard library for parsing Nmap XML output.

Requirements

  • A framework that supports .NET Standard 1.3 or newer (see .NET Standard Versions for details).
  • Nmap XML output

    This has been tested against output generated by Nmap v7.70. Other versions should work as long as the XML schema is similar.

Example Usage

Deserialize Nmap XML File

var xmlSerializer = new XmlSerializer(typeof(nmaprun));
var result = default(nmaprun);

using (var xmlStream = new StreamReader("NmapResults.xml"))
{
    result = xmlSerializer.Deserialize(xmlStream) as nmaprun;
}

Console.WriteLine(result.args);

Generating Classes from Schema

The classes to parse the Nmap XML output are generated from the Nmap document type definition (DTD). To prevent naming collisions the generated classes are scoped to the NmapXmlParser namespace.

To re-generate the classes a Visual Studio installation is required. The following steps can be used to re-generate the classes.

  1. Download the latest copy of the Nmap DTD and save it to Schemas/nmap.dtd.
  2. Convert the DTD to a XML Schema Definition (XSD):
    1. Open the downloaded DTD file in Visual Studio and go to XML > Create Schema.
    2. Remove the xmlns and targetNamespace attributes from the xs:schema element (line 2 of the generated XSD).

      This is required as the XML output from Nmap is not scoped to a namespace, and the XmlSerializer class will throw if it expects a namespace.

    3. Save the XSD to Schemas/nmap.xsd.
  3. Generate the C# classes from the XSD. Open the Developer Command Prompt for VS and run the following command from the root of this repository:
    xsd NmapXmlParser/Schemas/nmap.xsd /classes /language:CS /namespace:NmapXmlParser /out:NmapXmlParser/
    

At this point the library can be re-built to include the updated classes.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp1.0 was computed.  netcoreapp1.1 was computed.  netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard1.3 is compatible.  netstandard1.4 was computed.  netstandard1.5 was computed.  netstandard1.6 was computed.  netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net46 was computed.  net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen30 was computed.  tizen40 was computed.  tizen60 was computed. 
Universal Windows Platform uap was computed.  uap10.0 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 2,831 12/16/2018