[英]Access nodes of xml in right order
I have problems to extract data from an xml file: 我从xml文件中提取数据时遇到问题:
<diagnosis_list>
<diagnosis>
<icd_code V="A00.-"/>
<description V="Cholera"/>
<diagnosis_list>
<diagnosis>
<icd_code V="A00.0"/>
<description V="Cholera durch Vibrio cholerae O:1, Biovar cholerae"/>
<dangerous V="j"/>
<subcategories_list>
<subcategory V="Klassische Cholera"/>
</subcategories_list>
</diagnosis>
<diagnosis>
<icd_code V="A00.1"/>
<description V="Cholera durch Vibrio cholerae O:1, Biovar eltor"/>
<dangerous V="j"/>
<subcategories_list>
<subcategory V="El-Tor-Cholera"/>
<subcategory V="Choleraartige Dysenterie"/>
<subcategory V="El-Tor-Enteritis"/>
</subcategories_list>
</diagnosis>
</diagnosis_list>
</diagnosis>
</diagnosis_list>
I tried several things with nokigiri and Css, but had not really success. 我用nokigiri和Css尝试了几件事,但并没有真正成功。 As output i would like something like:
作为输出我想要像:
A00.- => Cholera
A00.0 => Cholera durch Vibrio cholerae O:1, Biovar cholerae
Subcategories => Klassische Cholera
A00.1 => Cholera durch Vibrio cholerae O:1, Biovar eltor
Subcategories => El-Tor-Cholera
Choleraartige Dysenterie
El-Tor-Enteritis
But the output for now is not so important, im happy about every suggestion how to access the nodes of the xml in the right order! 但是现在的输出并不那么重要,我很高兴每个建议如何以正确的顺序访问xml的节点! Thanks
谢谢
Using xpath: 使用xpath:
require 'nokogiri'
doc = Nokogiri::XML(xml)
doc.xpath('//icd_code|//description').each do |node|
p node['V']
end
prints 版画
"A00.-"
"Cholera"
"A00.0"
"Cholera durch Vibrio cholerae O:1, Biovar cholerae"
"A00.1"
"Cholera durch Vibrio cholerae O:1, Biovar eltor"
UPDATE UPDATE
require 'nokogiri'
doc = Nokogiri::XML(xml)
doc.css('icd_code').each do |icd_code|
desc = icd_code.css('~ description')[0]
puts "#{icd_code['V']} => #{desc['V']}"
icd_code.css('~ subcategories_list>subcategory').each do |subcategory|
puts " #{subcategory['V']}"
end
end
prints 版画
A00.- => Cholera
A00.0 => Cholera durch Vibrio cholerae O:1, Biovar cholerae
Klassische Cholera
A00.1 => Cholera durch Vibrio cholerae O:1, Biovar eltor
El-Tor-Cholera
Choleraartige Dysenterie
El-Tor-Enteritis
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.