Разработчиком этой конкретной библиотеки является MIA. https://github.com/Kamiizumi/NmapXmlParser
Чтобы проверить проблему, возьмите его библиотеку (NmapXmlParser) из Nu-Get и убедитесь, что у вас есть
using System.Xml.Serialization;
using System.IO;
using Xunit;
Код, который он дает на примере выглядит так:
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);
Это работает при получении элементов внутри объекта nmaprun. Он не приводит никаких других примеров, поэтому я предположил, что если бы я хотел проверить объект хоста, я бы изменил все экземпляры nmaprun в приведенном выше коде на хост. А затем в строке консоли измените на элемент внутри хост-объекта, например,
var xmlSerializer = new XmlSerializer(typeof(host));
var result = default(host);
using (var xmlStream = new StreamReader("NmapResults.xml"))
{
result = xmlSerializer.Deserialize(xmlStream) as host;
}
Console.WriteLine(result.reason);
Intellisense внутри Console.Writeline хочет автозаполнение элементов, поэтому я чувствую, что он настроен правильно, но я продолжаю получать эта ошибка.
System.InvalidOperationException: 'Ошибка в XML документе (5, 2).' Внутреннее исключение InvalidOperationException: не ожидалось.
Вы можете использовать пример XML в его Github, если у вас нет выходного файла Nmap xml