如何基于不同的属性值访问属性值



我正在自学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属性。

相关内容

  • 没有找到相关文章

最新更新