Ruby 如何从网页加载xml文件并从xml中读取特定节点?
我计划从网页加载下面提到的xml,然后从中读取特定节点。过滤条件:如果“displayname”属性包含“isc-asr901a”,则应选择第一个节点,并返回节点ethernetprotocolendpointextendedto”的属性“id”值 谢谢,Ruby 如何从网页加载xml文件并从xml中读取特定节点?,ruby,xpath,nokogiri,Ruby,Xpath,Nokogiri,我计划从网页加载下面提到的xml,然后从中读取特定节点。过滤条件:如果“displayname”属性包含“isc-asr901a”,则应选择第一个节点,并返回节点ethernetprotocolendpointextendedto”的属性“id”值 谢谢, Chandana您需要使用Nokogiri::XML,而不是Nokogiri::HTML,因为这是一个XML。此外,您在ethernetProtocolEndpointExtendedDTO中有一个打字错误-您编写了ethernetProto
Chandana您需要使用
Nokogiri::XML
,而不是Nokogiri::HTML
,因为这是一个XML。此外,您在ethernetProtocolEndpointExtendedDTO
中有一个打字错误-您编写了ethernetProtocolEndpointDTO
此外,还应使用查找包含字符串的显示名称:
strurl = "https://.."
doc = Nokogiri::XML(open(strurl))
doc.xpath('//queryResponse/entity/ethernetProtocolEndpointExtendedDTO[contains(@displayName, "isc-asr901a")]').each do |node|
puts node['id']
end
# => 2283315
strurl = "https://.."
doc = Nokogiri::HTML(open(strurl))
doc.xpath('//queryResponse/entity/ethernetProtocolEndpointDTO[@displayName="[^"]*isc-asr901a[^"]*]').each do |node|
puts node['id']
end
strurl = "https://.."
doc = Nokogiri::XML(open(strurl))
doc.xpath('//queryResponse/entity/ethernetProtocolEndpointExtendedDTO[contains(@displayName, "isc-asr901a")]').each do |node|
puts node['id']
end
# => 2283315