Como posso parar de análise, quando encontrar o elemento 1º?
-
05-07-2019 - |
Pergunta
Eu gostaria de analisar parar quando encontrar 1º elemento ainda há mais mesmo elemento depois disso.
Eu uso libxml, SAX no rubi.
Este código mostra cada elemento <usr>
.
Mas eu quero parse parar quando encontrar 1º <usr>
.
Como esse arquivo XML será enorme.
Alguém sabe como parar para analisar quando encontrar primeiro elemento pelo método SAX.
código
#! ruby -Ku
require 'rubygems'
require 'libxml'
include LibXML
class PostCallbacks
include XML::SaxParser::Callbacks
def on_start_element(element, attributes)
if /usr/ =~ element
p element
end
end
end
parser = XML::SaxParser.file('test.xml')
parser.callbacks = PostCallbacks.new
parser.parse
Graças.
Solução
Eu não sei se este é também aplicável nos termos do rubi, mas para o módulo Python SAX, deve-se lançar uma exceção para sair da fase de "análise" ... é a única maneira de fazê-lo sem cortar.
Eu acho que se você não encontrar um método na documentação do Ruby, que provavelmente significa que a minha proposta é sensível; -)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow