国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Maison développement back-end Tutoriel XML/RSS Solution pour utiliser Sax pour analyser XML en Java

Solution pour utiliser Sax pour analyser XML en Java

Jan 11, 2017 pm 12:56 PM

En Java, il existe deux fa?ons d'analyser les documents XML de manière native, à savoir?: l'analyse Dom et l'analyse Sax.

L'analyse Dom est puissante et peut être ajoutée, supprimée, modifiée et vérifiée. Le document XML sera traité. en tant qu'objet document pendant le fonctionnement La méthode est lue dans la mémoire, elle convient donc aux petits documents

L'analyse Sax lit le contenu ligne par élément du début à la fin. C'est plus gênant à modifier, mais c'est le cas. adapté aux gros documents en lecture seule

Cet article explique principalement l'analyse Sax, et le reste sera laissé de c?té

Sax utilise une approche événementielle pour analyser les documents. Pour faire simple, c'est comme regarder un film au cinéma. Vous pouvez le regarder du début à la fin sans revenir en arrière (Dom peut le lire d'avant en arrière)

En train de regarder un film, chaque. chaque fois que vous rencontrez un complot, une larme, un frottement d'épaule, vous mobiliserez votre cerveau et vos nerfs pour recevoir ou traiter cette information

De même, lors du processus d'analyse de Sax, en lisant le début et la fin du document, et le début et la fin de l'élément déclencheront certaines méthodes de rappel, vous pouvez effectuer le traitement des événements correspondant dans ces méthodes de rappel

Les quatre méthodes sont?: startDocument(), endDocument(), startElement(), endElement

De plus, une lecture légère Il ne suffit pas d'aller au n?ud. Nous avons également besoin de la méthode caractères() pour traiter soigneusement le contenu contenu dans l'élément

En rassemblant ces méthodes de rappel, une classe. est formé, qui est le déclencheur dont nous avons besoin.

Généralement, le document est lu à partir de la méthode Main, mais le document est traité dans le déclencheur. Il s'agit de la méthode dite d'analyse basée sur les événements

.

Solution pour utiliser Sax pour analyser XML en Java

Comme indiqué ci-dessus, dans le déclencheur, commencez d'abord à lire le document, puis commencez à analyser les éléments un par un. Le contenu de chaque élément sera renvoyé aux caractères().

puis terminez la lecture de l'élément. Une fois tous les éléments lus, terminez l'analyse du document

Maintenant, nous commen?ons à créer la classe déclencheur. Pour créer cette classe, nous devons d'abord hériter. DefaultHandler

pour créer SaxHandler et remplacer la méthode correspondante?:

import org.xml.sax.Attributes; 
import org.xml.sax.SAXException; 
import org.xml.sax.helpers.DefaultHandler; 

  
public class SaxHandler extends DefaultHandler { 

    /* 此方法有三個(gè)參數(shù) 
       arg0是傳回來(lái)的字符數(shù)組,其包含元素內(nèi)容 
       arg1和arg2分別是數(shù)組的開(kāi)始位置和結(jié)束位置 */ 
    @Override 
    public void characters(char[] arg0, int arg1, int arg2) throws SAXException { 
        String content = new String(arg0, arg1, arg2); 
        System.out.println(content); 
        super.characters(arg0, arg1, arg2); 
    } 

    @Override 
    public void endDocument() throws SAXException { 
        System.out.println("\n…………結(jié)束解析文檔…………"); 
        super.endDocument(); 
    } 

    /* arg0是名稱空間 
       arg1是包含名稱空間的標(biāo)簽,如果沒(méi)有名稱空間,則為空 
       arg2是不包含名稱空間的標(biāo)簽 */ 
    @Override 
    public void endElement(String arg0, String arg1, String arg2) 
            throws SAXException { 
        System.out.println("結(jié)束解析元素  " + arg2); 
        super.endElement(arg0, arg1, arg2); 
    } 

    @Override 
    public void startDocument() throws SAXException { 
        System.out.println("…………開(kāi)始解析文檔…………\n"); 
        super.startDocument(); 
    } 

    /*arg0是名稱空間 
      arg1是包含名稱空間的標(biāo)簽,如果沒(méi)有名稱空間,則為空 
      arg2是不包含名稱空間的標(biāo)簽 
      arg3很明顯是屬性的集合 */
    @Override
    public void startElement(String arg0, String arg1, String arg2, 
            Attributes arg3) throws SAXException { 
        System.out.println("開(kāi)始解析元素 " + arg2); 
        if (arg3 != null) { 
            for (int i = 0; i < arg3.getLength(); i++) { 
                 // getQName()是獲取屬性名稱, 
                System.out.print(arg3.getQName(i) + "=\"" + arg3.getValue(i) + "\""); 
            } 
        } 
        System.out.print(arg2 + ":"); 
        super.startElement(arg0, arg1, arg2, arg3); 
    } 
}

Document XML?:

<?xml version="1.0" encoding="UTF-8"?>  
<books>  
   <book id="001">  
      <title>Harry Potter</title>  
      <author>J K. Rowling</author>  
   </book>  
   <book id="002">  
      <title>Learning XML</title>  
      <author>Erik T. Ray</author>  
   </book>  
</books>

Classe de test TestDemo?:

import java.io.File; 

import javax.xml.parsers.SAXParser; 
import javax.xml.parsers.SAXParserFactory; 

  
public class TestDemo { 

    public static void main(String[] args) throws Exception { 
        // 1.實(shí)例化SAXParserFactory對(duì)象 
        SAXParserFactory factory = SAXParserFactory.newInstance(); 
        // 2.創(chuàng)建解析器 
        SAXParser parser = factory.newSAXParser(); 
        // 3.獲取需要解析的文檔,生成解析器,最后解析文檔 
        File f = new File("books.xml"); 
        SaxHandler dh = new SaxHandler(); 
        parser.parse(f, dh); 
    } 
}

Résultat de sortie?:

…………開(kāi)始解析文檔………… 

開(kāi)始解析元素 books 
books:  

開(kāi)始解析元素 book 
id="001"book:  

開(kāi)始解析元素 title 
title:Harry Potter 
結(jié)束解析元素  title 

        
開(kāi)始解析元素 author 
author:J K. Rowling 
結(jié)束解析元素  author 

     
結(jié)束解析元素  book 

     
開(kāi)始解析元素 book 
id="002"book:  

開(kāi)始解析元素 title 
title:Learning XML 
結(jié)束解析元素  title 

        
開(kāi)始解析元素 author 
author:Erik T. Ray 
結(jié)束解析元素  author 

     
結(jié)束解析元素  book 

  
結(jié)束解析元素  books 

…………結(jié)束解析文檔…………

Bien que ce qui précède montre correctement le processus d'exécution, la sortie est très compliquée

Afin d'exécuter ce processus plus clairement, nous pouvons également réécrire SaxHandler pour restaurer l'original document xml

Classe SaxHandler réécrite?:

import org.xml.sax.Attributes; 
import org.xml.sax.SAXException; 
import org.xml.sax.helpers.DefaultHandler; 

  
public class SaxHandler extends DefaultHandler { 

    @Override
    public void characters(char[] arg0, int arg1, int arg2) throws SAXException { 
        System.out.print(new String(arg0, arg1, arg2)); 
        super.characters(arg0, arg1, arg2); 
    } 

    @Override
    public void endDocument() throws SAXException { 
        System.out.println("\n結(jié)束解析"); 
        super.endDocument(); 
    } 

    @Override
    public void endElement(String arg0, String arg1, String arg2) 
            throws SAXException { 
        System.out.print("</"); 
        System.out.print(arg2); 
        System.out.print(">"); 
        super.endElement(arg0, arg1, arg2); 
    } 

    @Override
    public void startDocument() throws SAXException { 
        System.out.println("開(kāi)始解析"); 
        String s = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; 
        System.out.println(s); 
        super.startDocument(); 
    } 

    @Override
    public void startElement(String arg0, String arg1, String arg2, 
            Attributes arg3) throws SAXException { 

        System.out.print("<"); 
        System.out.print(arg2); 

        if (arg3 != null) { 
            for (int i = 0; i < arg3.getLength(); i++) { 
                System.out.print(" " + arg3.getQName(i) + "=\"" + arg3.getValue(i) + "\""); 
            } 
        } 
        System.out.print(">"); 
        super.startElement(arg0, arg1, arg2, arg3); 
    } 

}

Pour plus d'articles liés aux solutions d'utilisation de sax pour analyser le XML en Java, veuillez faire attention au site Web PHP chinois?!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefa?on, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel PHP
1502
276
XML dans le développement de logiciels: cas d'utilisation et raisons d'adoption XML dans le développement de logiciels: cas d'utilisation et raisons d'adoption Jul 10, 2025 pm 12:14 PM

XmlischosenoveroTherformatsDuetOitsFlexibility, Human-Readabilité, androbustecosystem.1) itExcelsIndataExchangeandConfiguration.2) il est de la platform

Les caractéristiques clés d'un document XML bien formé Les caractéristiques clés d'un document XML bien formé Jul 12, 2025 am 01:22 AM

Awell formedxmldocumentAdhestospecificruleSenuryCorrectStructure andParseabilité.1) itstartswithaproperdeclarationlike.2) ElementsMustBecorrectlyEnthesweachOveningTaghavingacorRreshingClosingTag.

Le guide ultime du schéma XML: création de XML valide et fiable Le guide ultime du schéma XML: création de XML valide et fiable Jul 08, 2025 am 12:09 AM

XMLSCHEMACANBEEFECTECTIVEDUSEDTOCREATEVALIDANDRELIABLEXMLBYFORMINGTESTESTESPS: 1) DéfinitStructure andDatatypeSofxMlelements, 2) Userestrictions etfacetsfordata

Schéma XML: assurer l'intégrité des données dans les documents XML Schéma XML: assurer l'intégrité des données dans les documents XML Jul 12, 2025 am 12:39 AM

XMLSChemaSinsuresDatainTegrityInxMlDocumentsByDefiningStructureAnForCingrules.1) Itvalidatesdataformats, comme lansurysBnSare10or13Digits.3)

Schéma XML: Exemples en PHP Schéma XML: Exemples en PHP Jul 23, 2025 am 12:27 AM

XmlschemavalidationInphpisachievedUsingDocumentAndDomXpathClasseswithTheLiBxmlextension.1) LoadThexMlfilewithDomDocument.2) utilise le schemavalidateTominyIdateAgainstanxSdsChema, UsedinganExceptionIfVALIDG

Avantages du XML dans l'architecture logicielle: modèles de conception Avantages du XML dans l'architecture logicielle: modèles de conception Jul 09, 2025 am 02:13 AM

Xmlenhancessoftwarearcharchicturebyimprovinghemplementation dedesignPatternslikestrategy, usine, andobserver.1) inthestrategyPattern, xmlallowsruntimestrategyswitchViaconfigurationfiles.2)

Avantages du XML pour les développeurs: simplicité, flexibilité et portabilité Avantages du XML pour les développeurs: simplicité, flexibilité et portabilité Jul 20, 2025 am 03:59 AM

XMLBeneFitsDevelorseverswithitssimplicité, flexibilité et portabilité.1) itShiman RedingableFormatAiSSineasyDebuggging.2) PersonnalisetagsallowForAdaptabledatastectures.3) plate-forme indicedenceSureShesamlessDataExchangecrossSystems.

Que signifie ?bien formé? pour XML? Expliqué simplement Que signifie ?bien formé? pour XML? Expliqué simplement Jul 08, 2025 am 12:49 AM

XMLIS "bien formé" IFitAdhestobasicsyntaxrules.tobewell formé, XMLMUST: 1) apropenerStingOfoLelements, 2) y compris la sélection, 3) Usetagscortect, 4) suivantaTributesyNTaxrules, et 5) DécllatenceCcodingIfNeneded.

See all articles