


对XML进行Sax解析:
一、对XML进行Sax解析:
Sax解析XML是事件驱动的,安装XML的顺序一步一步进行解析的.优点不用事先调入整个文档,占用资源少,缺点是事件过后,若没保存数据,那么数据就丢了;无状态性;从事件中只能得到文本,但不知该文本属于哪个元素.
二、实现:
1.创建一个XMl文档:
<?xml version="1.0" encoding="UTF-8"?> <oracle > <user id="1" > <name>scott</name> <pwd>scott</pwd> </user> <user id="2"> <name>sys</name> <pwd>sys</pwd> </user> <user id="3"> <name>system</name> <pwd>system</pwd> </user> </oracle>
2.开始解析:
package Sax解析Xml; import java.io.File; import java.io.IOException; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; public class SaxParser { public static void main(String[] args) { // 1.实例化SaxParserFactory对象 SAXParserFactory factory = SAXParserFactory.newInstance(); try { // 2.创建解析器: SAXParser saxParser = factory.newSAXParser(); // 3.获取需要解析的文档,生成解析器,解析文档 File xmlFile = new File("myXml\\cb.xml"); MyHandler handler = new MyHandler(); // 开始解析: saxParser.parse(xmlFile, handler); } catch (ParserConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SAXException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static class MyHandler extends DefaultHandler { // 作用是来记录解析的上一个节点的名称 private String preTag = null; private boolean ifEnd =false; private String getName; private String getPwd; @Override public void characters(char[] ch, int start, int length) throws SAXException { // TODO Auto-generated method stub // super.characters(ch, start, length); if (preTag != null) { if ("name".equals(preTag)) { getName = new String(ch, start, length); } else if ("pwd".equals(preTag)) { getPwd = new String(ch, start, length); ifEnd=true; System.out.println(" <name>"+getName+"</name>"); System.out.println(" <pwd>"+getPwd+"</pwd>"); } } } @Override public void endDocument() throws SAXException { // TODO Auto-generated method stub // super.endDocument(); System.out.println(" </oracle>"); System.out.println("--------------------------"); System.out.println("解析XML完毕"); } @Override public void endElement(String uri, String localName, String qName) throws SAXException { // TODO Auto-generated method stub if(ifEnd==true){ System.out.println(" </user>"); ifEnd=false; } //当一个标签解析完后,preTag设置为null; preTag = null; } @Override public void startDocument() throws SAXException { // TODO Auto-generated method stub System.out.println("开始解析XML文件"); System.out.println("------------------------------"); System.out.println("<?xml version="+"\""+1.0+"\""+ "encoding="+"\""+"UTF-8"+"\""+"?"+">"); System.out.println(" <oracle>"); } @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { // TODO Auto-generated method stub // <user id="1" > if ("user".equals(qName)) { String s = qName; String s1 = attributes.getValue(0);// Id String s2 = attributes.getLocalName(0); //System.out.println(s + s1 + s2); System.out.println(" <"+qName+" "+"id="+"\""+s1+"\""+">"); } preTag = qName; } } }
三、运行结果:
四、补充说明:
1.执行顺序:
由于Sax解析是按照xml文件的顺序来解析,当读入时,会调用startDocument()方法,当读入
2.内部类加static关键字:
内部类是动态的,也就是开头以public class开头。而主程序是public static class main。在Java中,类中的静态方法不能直接调用动态方法。只有将某个内部类修饰为静态类,然后才能够在静态类中调用该类的成员变量与成员方法。所以在不做其他变动的情况下,最简单的解决办法是将public class改为public static class.
3.startElement(String uri, String localName, String qName,Attributes attributes) 方法的参数解释:
五、总结:
今天总算把对XML的两种解析方法搞了一遍,当初老师让写,自己不写,大概写了个Sax,现在都看不懂,我也是醉了,通过两种方法,我觉得Sax解析比较轻便。
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

RSS2.0 est une norme ouverte qui permet aux éditeurs de contenu de distribuer du contenu de manière structurée. Il contient des métadonnées riches telles que des titres, des liens, des descriptions, des dates de libération, etc., permettant aux abonnés de parcourir et d'accès rapidement au contenu. Les avantages de RSS2.0 sont sa simplicité et son évolutivité. Par exemple, il permet des éléments personnalisés, ce qui signifie que les développeurs peuvent ajouter des informations supplémentaires en fonction de leurs besoins, tels que des auteurs, des catégories, etc.

RSS est un format basé sur XML utilisé pour publier du contenu fréquemment mis à jour. 1. RSSFeed organise les informations via la structure XML, y compris le titre, le lien, la description, etc. 2. La création de RSSFeed nécessite une écriture dans la structure XML, ajoutant des métadonnées telles que la langue et la date de sortie. 3. L'utilisation avancée peut inclure des fichiers multimédias et des informations classifiées. 4. Utilisez des outils de vérification XML pendant le débogage pour vous assurer que les éléments requis existent et sont codés correctement. 5. Optimisation de RSSFeed peut être réalisée en paginant, en mise en cache et en gardant la structure simple. En comprenant et en appliquant ces connaissances, le contenu peut être géré et distribué efficacement.

RSS est un format basé sur XML utilisé pour publier et s'abonner au contenu. La structure XML d'un fichier RSS comprend un élément racine, un élément et plusieurs éléments, chacun représentant une entrée de contenu. Lire et analyser les fichiers RSS via un analyseur XML, et les utilisateurs peuvent s'abonner et obtenir le dernier contenu.

XML présente les avantages des données structurées, de l'évolutivité, de la compatibilité multiplateforme et de la vérification d'analyse en RSS. 1) Les données structurées garantissent la cohérence et la fiabilité du contenu; 2) L'évolutivité permet l'ajout de balises personnalisées en fonction des besoins de contenu; 3) La compatibilité multiplateforme le fait fonctionner de manière transparente sur différents appareils; 4) Les outils analytiques et de vérification garantissent la qualité et l'intégrité du flux.

L'implémentation de RSS dans XML consiste à organiser le contenu via un format XML structuré. 1) RSS utilise XML comme format d'échange de données, y compris des éléments tels que les informations de canal et la liste des projets. 2) Lors de la génération de fichiers RSS, le contenu doit être organisé en fonction des spécifications et publié sur le serveur pour abonnement. 3) Les fichiers RSS peuvent être abonnés via un lecteur ou un plug-in pour mettre à jour automatiquement le contenu.

Les fonctionnalités avancées de RSS incluent des espaces de noms de contenu, des modules d'extension et des abonnements conditionnels. 1) L'espace de noms de contenu étend les fonctionnalités RSS, 2) des modules étendus tels que Dublincore ou iTunes pour ajouter des métadonnées, 3) les entrées de filtres d'abonnement conditionnels en fonction de conditions spécifiques. Ces fonctions sont implémentées en ajoutant des éléments XML et des attributs pour améliorer l'efficacité de l'acquisition d'informations.

RSSFeedsUsexmltostructureContenSupdates.1)

RSS et XML sont des outils pour la gestion du contenu Web. RSS est utilisé pour publier et s'abonner au contenu, et XML est utilisé pour stocker et transférer des données. Ils travaillent avec la publication de contenu, les abonnements et la mise à jour push. Des exemples d'utilisation comprennent les articles de blog RSS Publishing et le stockage des informations sur le livre.


Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Listes Sec
SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

VSCode Windows 64 bits Télécharger
Un éditeur IDE gratuit et puissant lancé par Microsoft

MantisBT
Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit
