首页 > 解决方案 > 使用 c# 和此人员库 NmapXmlParser 从 NMAP 输出解析 XML 数据

问题描述

这个特定库的开发者似乎是 MIA。 https://github.com/Kamiizumi/NmapXmlParser

要测试问题,请从 Nu-Get 获取他的库 (NmapXmlParser) 并确保您有

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);

Console.Writeline 内部的 Intellisense 想要自动完成元素,所以我觉得它的设置正确,但我一直收到这个错误。

System.InvalidOperationException: 'XML 文档 (5, 2) 中存在错误。' 内部异常 InvalidOperationException: 不是预期的。

如果您没有 Nmap xml 输出文件,您可以在他的 Github 中使用示例 XML

标签: c#xmlvisual-studionmap

解决方案


推荐阅读