我正在自学Ruby和Nokogiri。我有一个nmap扫描,输出如下:
<host starttime="1368204336" endtime="1368204506"><status state="up" reason="arp- response" reason_ttl="0"/>
<address addr="192.168.1.254" addrtype="ipv4"/>
<address addr="88:53:D4:07:F1:3B" addrtype="mac" vendor="Huawei Technologies Co."/>
我试图使用Nokogiri通过声明它应该忽略if addrtype="mac"
来提取IP地址。下面是我的代码:
hosts = nmap_file.xpath('//host/address/@addr') if nmap_file.xpath('//host/address[not(@addrtype="mac")]')
这不起作用,当我puts hosts
时,MAC地址仍然包括在内。如有任何提示,不胜感激。
您不需要if
语句;您可以在单个XPath语句中完成此操作。
.xpath('//host/address[not(@addrtype="mac")]/@addr')
您只需选择您想要的address
元素,然后获取addr
属性。