0

从我的 xml 文件中,我可以从节点“gruppe”中检索数据,但不知何故我无法访问节点“诊断”

  <gruppen_liste>
        <gruppe>
          <von_icd_code V="A00"/>
          <bis_icd_code V="A09"/>
          <bezeichnung V="Infektiöse Darmkrankheiten"/>
          <diagnosen_liste>
            <diagnose>
              <icd_code V="A00.-"/>
              <bezeichnung V="Cholera"/>
              <abrechenbar V="n"/>
              <krankheit_in_mitteleuropa_sehr_selten V="j"/>
              <schlüsselnummer_mit_inhalt_belegt V="j"/>
              <infektionsschutzgesetz_meldepflicht V="j"/>
              <infektionsschutzgesetz_abrechnungsbesonderheit V="j"/>
              <diagnosen_liste>
                <diagnose>

我的代码:

kapitel.css('~ gruppen_liste>gruppe').each do |gruppe|
asc = gruppe.css('von_icd_code')[0]
asc2 = gruppe.css('von_icd_code')[0]
asc3 = gruppe.css('bezeichnung')[0]
puts "  #{asc['V']} #{asc2['V']} => #{asc3['V']}"

 gruppe.css('~ diagnosen_liste>diagnose').each do |diagnose|
    cesc = diagnose.css('icd_code')[0]
    puts "     #{cesc['V']}"
 end
end

但不知何故,它只生成这个输出:

 A00 A09 => Infektiöse Darmkrankheiten

为什么生成此代码没有输出?

 gruppe.css('~ diagnosen_liste>diagnose').each do |diagnose|
    cesc = diagnose.css('~ icd_code')[0]
    puts "     #{cesc['V']}"
 end
4

1 回答 1

2

当你这样做~ diagnosen_liste>diagnose时,~是一个通用的兄弟选择器。这意味着该diagnosen_liste节点必须是该节点的兄弟gruppe节点。鉴于这diagnosen_liste是一个孩子而不是兄弟姐妹,所以什么也找不到。

尝试删除波浪号:

gruppe.css('diagnosen_liste>diagnose').each do |diagnose|
  cesc = diagnose.css('~ icd_code')[0]
  puts "     #{cesc['V']}"
end
于 2013-08-12T12:51:14.757 回答