如何使用java解析器从nmap XML字符串(IP、端口)获取信息

如何使用java解析器从nmap XML字符串(IP、端口)获取信息,java,parsing,xml-parsing,sax,nmap,Java,Parsing,Xml Parsing,Sax,Nmap,我对编码是新手,我试图从NMAP4j生成的XML字符串中获取信息 <?xml version="1.0"?> <?xml-stylesheet href="file:///usr/local/share/nmap/nmap.xsl" type="text/xsl"?> <!-- Nmap 6.01 scan initiated Mon Jan 14 13:56:47 2013 as: /usr/local/bin/nmap -&#45;datadir /us

我对编码是新手,我试图从NMAP4j生成的XML字符串中获取信息

<?xml version="1.0"?>
<?xml-stylesheet href="file:///usr/local/share/nmap/nmap.xsl" type="text/xsl"?>
<!-- Nmap 6.01 scan initiated Mon Jan 14 13:56:47 2013 as: /usr/local/bin/nmap -&#45;datadir /usr/local/share/nmap -T4 -oX - 192.168.1.1 -->
<nmaprun scanner="nmap" args="/usr/local/bin/nmap -&#45;datadir /usr/local/share/nmap -T4 -oX - 192.168.1.1" start="1358168207" startstr="Mon Jan 14 13:56:47 2013" version="6.01" xmloutputversion="1.04">
<scaninfo type="syn" protocol="tcp" numservices="1000" services="1,3-4,..."/>
<verbose level="0"/>
<debugging level="0"/>
<host starttime="1358168207" endtime="1358168209"><status state="up" reason="arp-response"/>
<address addr="192.168.1.1" addrtype="ipv4"/>
<address addr="xxx" addrtype="mac" vendor="yyy"/>
<hostnames>
</hostnames>
<ports><extraports state="closed" count="996">
<extrareasons reason="resets" count="996"/>
</extraports>
<port protocol="tcp" portid="21"><state state="open" reason="syn-ack" reason_ttl="64"/><service name="ftp" method="table" conf="3"/></port>
<port protocol="tcp" portid="22"><state state="open" reason="syn-ack" reason_ttl="64"/><service name="ssh" method="table" conf="3"/></port>
</ports>
<times srtt="36813" rttvar="25229" to="137729"/>
</host>
<runstats><finished time="1358168209" timestr="Mon Jan 14 13:56:49 2013" elapsed="2.48" summary="Nmap done at Mon Jan 14 13:56:49 2013; 1 IP address (1 host up) scanned in 2.48 seconds" exit="success"/><hosts up="1" down="0" total="1"/>
</runstats>
</nmaprun>
但我无法找到一个解决方案,即拥有对象并操纵这些对象以获取所有信息


请帮我用一个简单的代码示例让所有人都能理解

您是否正在尝试解析现有文件?如果是:

OnePassParser opp = new OnePassParser() ;
NMapRun nmapRun = opp.parse( fileName, OnePassParser.FILE_NAME_INPUT ) ;

没有字符串输入,我找不到如何获取对象或信息。我在阅读文档后找到了一个解决方案,这是为第一台主机OnePassParser opp=new OnePassParser()获取供应商的示例;NMapRun nmapRun1=opp.parse(NMapRun,OnePassParser.STRING\u输入);ArrayList hosts=nmapRun1.getHosts();System.out.println(hosts.get(0.getAddress().getVendor());您好-您能够获取其他XML标记的内容吗?e、 g.使用“-script=ssl cert ssl”标志的结果
OnePassParser opp = new OnePassParser() ;
NMapRun nmapRun = opp.parse( fileName, OnePassParser.FILE_NAME_INPUT ) ;