如何解析xml文件中下一个节点的数据

时间:2013-08-12 12:06:52

标签: ruby xml

我尝试解析这个xml文件,问题是我不知何故无法获取节点“gruppe”的数据。

 <nummer V="1"/>
      <von_icd_code V="A00"/>
      <bis_icd_code V="B99"/>
      <bezeichnung V="Bestimmte infektiöse und parasitäre Krankheiten"/>
      <gruppen_liste>
        <gruppe>
          <von_icd_code V="A00"/>
          <bis_icd_code V="A09"/>
          <bezeichnung V="Infektiöse Darmkrankheiten"/>

我的代码:

 doc = Nokogiri::XML(File.open("icd2.xml"))

 doc.css('nummer').each do |kapitel|
   desc = kapitel.css('~ von_icd_code')[0]
   desc2 = kapitel.css('~ bis_icd_code')[0]
   desc3 = kapitel.css('~ bezeichnung')[0]
   puts "#{desc['V']} #{desc2['V']} => #{desc3['V']}"

   kapitel.css('~ gruppe').each do |gruppe|
    asc = gruppe.node_name
    puts "    #{asc}"

 end
end

生成此输出:

 A00 B99 => Bestimmte infektiöse und parasitäre Krankheiten

但是为什么生成这段代码没有输出?

 kapitel.css('~ gruppe').each do |gruppe|
    asc = gruppe.node_name
    puts "    #{asc}"

 end

1 个答案:

答案 0 :(得分:1)

请尝试以下方式:

kapitel.css('~ gruppen_liste>gruppe').each do |gruppe|
  asc = gruppe.node_name
  puts "    #{asc}"
end

~ x匹配的兄弟x - 标记节点。