como analisar XML usando o parser sax
ao usar o sax para analisar documentos XML, existem duas implementações principais a serem consideradas: org. XML.SAX e Android.Sax. Cada implementação tem suas próprias vantagens e desvantagens. Requer manualmente os ouvintes de eventos para diferentes eventos XML, como elementos de partida/final e dados de caracteres. Embora essa abordagem ofereça mais flexibilidade, ela pode levar a um código mais detalhado e repetitivo. // Inicialize Pojos (objetos java antigos simples) para armazenar dados XML canal de canal privado; itens privados itens; item particular item; private boolean initem = false; Conteúdo privado de stringbuilder; @Override public void startElement (string uri, string localName, string qname, atributos atts) lança saxException { Content = new StringBuilder (); if (localName.equalsignorecase ("canal")) { canal = novo canal (); } else if (localName.equalsignorecase ("item")) { initem = true; item = novo item (); } } // ... Os ouvintes do evento restantes ... }
android.sax implementation
A implementação Android.sax simplifica a análise definindo a estrutura XML antecipada usando o RootElement e o Element Objects. Os ouvintes de eventos são adicionados a esses elementos para lidar com padrões de dados específicos. Essa abordagem reduz a repetição do código, mas requer uma estrutura XML bem definida. // POJOS para armazenar dados XML canal de canal privado; itens privados itens; item particular item; Public Exple () { itens = novos itens (); } // Adicionar ouvintes de eventos para eventos de elemento // ... código restante ... }
public class ExampleHandler extends DefaultHandler { // Initialize POJOs (Plain Old Java Objects) to store XML data private Channel channel; private Items items; private Item item; private boolean inItem = false; private StringBuilder content; @Override public void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException { content = new StringBuilder(); if (localName.equalsIgnoreCase("channel")) { channel = new Channel(); } else if (localName.equalsIgnoreCase("item")) { inItem = true; item = new Item(); } } // ... Remaining event listeners ... }comparação
contras: flexibilidade limitada em lidar com XML complexo XML Structures
public class Example extends DefaultHandler { // POJOs to store XML data private Channel channel; private Items items; private Item item; public Example() { items = new Items(); } // Add event listeners for element events // ... Remaining code ... }
pros: maior flexibilidade, mais adequado para estruturas XML complexas
constricional: Verboso e repetitivo Code
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3