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

Ruby 如何基于不同的属性值访问属性值?,ruby,xpath,attributes,nokogiri,Ruby,Xpath,Attributes,Nokogiri,我正在自学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" a

我正在自学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."/>

这不起作用,当我放入主机时,MAC地址仍然包括在内。任何提示都将不胜感激。

您不需要
if
语句;您可以在单个XPath语句中完成此操作

.xpath('//host/address[not(@addrtype="mac")]/@addr')

您只需选择所需的
address
元素,然后获取
addr
属性。你很接近。

你不需要
if
语句;您可以在单个XPath语句中完成此操作

.xpath('//host/address[not(@addrtype="mac")]/@addr')
您只需选择所需的
address
元素,然后获取
addr
属性。你很接近