Mam ten xml:Nokogiri zrobić każdy węzeł, Ruby
<kapitel>
<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"/>
<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"/>
Jak widać mój pierwszy węzeł jest kapitel. Chciałbym zrobić coś takiego, jak kapitel .each do | f | aby nokgiri wyodrębnił węzły von_icd_code i bis_icd_code we właściwej kolejności. Mój kod:
require 'rubygems'
require 'nokogiri'
require 'open-uri'
@doc = Nokogiri::XML(File.open("icd.xml"))
kapitel = @doc.css('kapitel')
kapitel.each do |f|
puts f.css('von_icd_code')
puts f.css('bis_icd_code')
end
Problemem jest to, że nogiri nie EXTRAKT się „von_icd_code” oraz 'bis_icd_code w prawym Odry, zamiast najpierw wymienić wszystkie von_icd_code A potem „bis_icd_code”. Jak mogę wypróbować węzły w odpowiednim oderze?
I w moim wyjściu uzyskać:
<von_icd_code V="A00"/>
Jak mogę dostać tylko treść V w tym przypadku A00
Dzięki!
To opiera się na 'bis_icd_code' zawsze pojawiającym się * po *' von_icd_code' w parach. Mogą to zrobić, ale nie ma na to dowodów. – Borodin
Oczywiście istnieją dowody na to. Spójrz na przykład. – pguardiario