XML-Programmierung-SAX
XMLProgrammierung-SAX
Grundlagen Übersicht
SAX, der vollständige Name ist Simple API for XML, das sowohl eine Schnittstelle als auch eine Software ist Paket. Es ist eine Alternative zum XML-Parsing. SAX unterscheidet sich von der DOM-Analyse. Es scannt das Dokument Zeile für Zeile und analysiert es beim Scannen. Da die Anwendung die Daten nur beim Lesen überprüft, ist es nicht erforderlich, die Daten im Speicher zu speichern, was beim Parsen großer Dokumente einen großen Vorteil darstellt.
SAX ist ein ereignisgesteuertes „Push“-Modell für die Verarbeitung von XML, obwohl es nicht W3CStandard, aber es ist eine weithin anerkannte API. Der SAX-Parser erstellt keinen vollständigen Dokumentbaum wie DOM, sondern aktiviert beim Lesen des Dokuments eine Reihe von Ereignissen. Diese Ereignisse werden an Ereignishandler weitergeleitet, die dann Zugriff auf den Dokumentinhalt ermöglichen.
PS: SAX kann die XML-Datei nicht ändern, löschen und Operationen hinzufügen.
Warum dieSAX-Technologie einführen?
DOM-Technologie ist auch eine sehr gute DOM-Parsing-Lösung SAX 🎜>Was ist mit der Technologie? Der Grund ist ganz einfach: DOM speichert XML in der Struktur eines Dokumentbaums, was bedeutet, dass in einem Rutsch gespeichert wird. Aus diesem Grund wurde die Scan- und Parsing-Technologie von SAX geboren. Schema
SAX
SAX
Parsing Ermöglicht das zu verarbeitende Dokument beim Lesen des Dokuments, ohne warten zu müssen, bis das gesamte Dokument geladen ist, bevor das Dokument bearbeitet wird.
InJava
DefaultHandler
einSAX entwickeln Parser. Der Parsing-Mechanismus von SAX ist dem Event-Listening-Mechanismus sehr ähnlich. Beide warten darauf, dass ein Ereignis ausgelöst wird, und rufen dann die entsprechende Methode auf. Die am häufigsten verwendeten 5
Ereignisse von SAXParser:
1, startDocument(): Dies markiert die Startposition des vom
SAX-Parser gescannten Dokuments. 2, endDocument(), das die Endposition des vom SAX-Parsers gescannten Dokuments markiert. 3, startElement(), was anzeigt, dass der SAX Parser gescannt hat Eröffnungs-Tag eines Elements. 4, character(), was anzeigt, dass der SAX-Parser einige gescannt hat Beachten Sie, dass der Text in Form eines char-Arrays gespeichert wird. 5, endElement(), was anzeigt, dass der SAX-Parser gescannt hat Das schließende Tag eines Elements. public void startDocument() public void startElement(String uri , String localName, String qName,Attributes attributes) uri - Namespace URI, wenn das Element keinen Namespace hat URI oder die leere Zeichenfolge, wenn keine Namespace-Verarbeitung durchgeführt wird. localName – Lokaler Name (ohne Präfix) oder die leere Zeichenfolge, wenn keine Namespace-Verarbeitung durchgeführt wird. qName – Qualifizierter Name (mit Präfix) oder die leere Zeichenfolge, wenn kein qualifizierter Name verfügbar ist. Attribute – Attribute, die dem Element zugeordnet sind. Wenn keine Attribute vorhanden sind, handelt es sich um ein leeres Attributes -Objekt. öffentliche Leerzeichen (char[] ch, int start, int length) ch - Alle Zeichen des Dokuments . start – Die Startposition im Zeichenarray. Länge – Die Anzahl der zu verwendenden Zeichen aus dem Zeichenarray. public void endElement(String uri, String localName, String qName) uri - Namespace URI oder die leere Zeichenfolge, wenn das Element keinen Namespace URI hat oder wenn keine Namespace-Verarbeitung durchgeführt wird. localName – Lokaler Name (ohne Präfix) oder die leere Zeichenfolge, wenn keine Namespace-Verarbeitung durchgeführt wird. qName – Qualifizierter Name (mit Präfix) oder die leere Zeichenfolge, wenn kein qualifizierter Name verfügbar ist. public void endDocument() Durch die gemeinsame Verwendung des Parsers und des Ereignishandlers können Sie das XML-Dokument analysieren. Der -Parser kann mithilfe der API von JAXP erstellt werden, um das SAX Parser Danach können Sie den Parser angeben, der ein bestimmtes XML-Dokument analysiert. Der Ereignishandler wird vom Programmierer geschrieben. Über die Parameter der Methode im Ereignishandler kann der Programmierer die Daten einfach vom Sax-Parser analysieren lassen, sodass er entscheiden kann wie die Daten verarbeitet werden. , durch Aufrufen von SAXParserFactorys Die Methode newInstance() ruft das Parser-Factory-Objekt Sax ab. , erhalten durch Aufruf der Methode newSAXParser() über den Parser Sax Factory-Objekt-ParserSAXParser-Objekt , indem die parse-Methode des Parser-Objekts aufgerufen wird Parser mit Event-Handler-Objekt verknüpfen XML6.xml Liste der allgemeinen Methodenparameter des Ereignishandlers
Parsing-Methode
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<班级 班次="1班" 编号="C1">
<学生 地址="湖南" 学号="n1" 性别="男" 授课方式="面授" 朋友="n2" 班级编号="C1">
<名字>张三</名字>
<年龄>20</年龄>
<介绍>不错</介绍>
</学生>
<学生 学号="n2" 性别="女" 授课方式="面授" 朋友="n1 n3" 班级编号="C1">
<名字>李四</名字>
<年龄>18</年龄>
<介绍>很好</介绍>
</学生>
<学生 学号="n3" 性别="男" 授课方式="面授" 朋友="n2" 班级编号="C1">
<名字>王五</名字>
<年龄>22</年龄>
<介绍>非常好</介绍>
</学生>
<学生 性别="男">
<名字>小明</名字>
<年龄>30</年龄>
<介绍>好</介绍>
</学生>
</班级>
package com.pc;
import javax.xml.parsers.*;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class XML6{
//使用sax技术去解析xml文件
public static void main(String[] args) throws Exception, SAXException {
// TODO Auto-generated method stub
//1.创建SaxParserFactory
SAXParserFactory spf=SAXParserFactory.newInstance();
//2.创建SaxParser 解析器
SAXParser saxParser=spf.newSAXParser();
//3 把xml文件和事件处理对象关联
saxParser.parse("src/com/pc/XML6.xml",new MyDefaultHandler2() );
}
}
// 只显示学生的名字和年龄
class MyDefaultHandler2 extends DefaultHandler{
private boolean isName=false;
private boolean isAge=false;
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
// TODO Auto-generated method stub
String con=new String(ch,start,length);
if(!con.trim().equals("")&&(isName||isAge)){
System.out.println(con);
}
isName=false;
isAge=false;
//super.characters(ch, start, length);
}
@Override
public void endDocument() throws SAXException {
// TODO Auto-generated method stub
super.endDocument();
}
@Override
public void endElement(String uri, String localName, String name)
throws SAXException {
// TODO Auto-generated method stub
super.endElement(uri, localName, name);
}
@Override
public void startDocument() throws SAXException {
// TODO Auto-generated method stub
super.startDocument();
}
@Override
public void startElement(String uri, String localName, String name,
Attributes attributes) throws SAXException {
// TODO Auto-generated method stub
if(name.equals("名字")){
this.isName=true;
}else if(name.equals("年龄")){
this.isAge=true;
}
}
}
//定义事件处理类
class MyDefaultHandler1 extends DefaultHandler{
//发现文档开始
@Override
public void startDocument() throws SAXException {
// TODO Auto-generated method stub
System.out.println("startDocument()");
super.startDocument();
}
//发现xml文件中的一个元素
@Override
public void startElement(String uri, String localName, String name,
Attributes attributes) throws SAXException {
// TODO Auto-generated method stub
System.out.println("元素名称="+name);
}
//发现xml文件中的文本
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
String con=new String(ch,start,length);
//显示文本内容:
if(!con.trim().equals("")){
System.out.println(new String(ch,start,length));
}
}
//发现xml文件中一个元素介绍</xx>
@Override
public void endElement(String uri, String localName, String name)
throws SAXException {
// TODO Auto-generated method stub
super.endElement(uri, localName, name);
}
//发现文档结束
@Override
public void endDocument() throws SAXException {
// TODO Auto-generated method stub
System.out.println("endDocument()");
super.endDocument();
}
}

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Können XML-Dateien mit PPT geöffnet werden? XML, Extensible Markup Language (Extensible Markup Language), ist eine universelle Auszeichnungssprache, die häufig im Datenaustausch und in der Datenspeicherung verwendet wird. Im Vergleich zu HTML ist XML flexibler und kann eigene Tags und Datenstrukturen definieren, wodurch die Speicherung und der Austausch von Daten komfortabler und einheitlicher werden. PPT oder PowerPoint ist eine von Microsoft entwickelte Software zum Erstellen von Präsentationen. Es bietet eine umfassende Möglichkeit

Verwenden von Python zum Zusammenführen und Deduplizieren von XML-Daten XML (eXtensibleMarkupLanguage) ist eine Auszeichnungssprache, die zum Speichern und Übertragen von Daten verwendet wird. Bei der Verarbeitung von XML-Daten müssen wir manchmal mehrere XML-Dateien zu einer zusammenführen oder doppelte Daten entfernen. In diesem Artikel wird erläutert, wie Sie mit Python die Zusammenführung und Deduplizierung von XML-Daten implementieren und entsprechende Codebeispiele angeben. 1. XML-Daten zusammenführen Wenn wir mehrere XML-Dateien haben, müssen wir sie zusammenführen

Konvertieren Sie XML-Daten in Python in das CSV-Format. XML (ExtensibleMarkupLanguage) ist eine erweiterbare Auszeichnungssprache, die häufig zur Datenspeicherung und -übertragung verwendet wird. CSV (CommaSeparatedValues) ist ein durch Kommas getrenntes Textdateiformat, das häufig für den Datenimport und -export verwendet wird. Bei der Datenverarbeitung ist es manchmal erforderlich, XML-Daten zur einfachen Analyse und Verarbeitung in das CSV-Format zu konvertieren. Python ist mächtig

Implementieren des Filterns und Sortierens von XML-Daten mit Python Einführung: XML ist ein häufig verwendetes Datenaustauschformat, das Daten in Form von Tags und Attributen speichert. Bei der Verarbeitung von XML-Daten müssen wir die Daten häufig filtern und sortieren. Python bietet viele nützliche Tools und Bibliotheken zum Verarbeiten von XML-Daten. In diesem Artikel wird erläutert, wie Sie mit Python XML-Daten filtern und sortieren. Lesen der XML-Datei Bevor wir beginnen, müssen wir die XML-Datei lesen. Python verfügt über viele XML-Verarbeitungsbibliotheken.

Importieren von XML-Daten in die Datenbank mit PHP Einführung: Während der Entwicklung müssen wir häufig externe Daten zur weiteren Verarbeitung und Analyse in die Datenbank importieren. Als häufig verwendetes Datenaustauschformat wird XML häufig zum Speichern und Übertragen strukturierter Daten verwendet. In diesem Artikel wird erläutert, wie Sie mit PHP XML-Daten in eine Datenbank importieren. Schritt 1: XML-Datei analysieren Zuerst müssen wir die XML-Datei analysieren und die erforderlichen Daten extrahieren. PHP bietet mehrere Möglichkeiten zum Parsen von XML. Die am häufigsten verwendete davon ist die Verwendung von Simple

Python implementiert die Konvertierung zwischen XML und JSON. Einführung: Im täglichen Entwicklungsprozess müssen wir häufig Daten zwischen verschiedenen Formaten konvertieren. XML und JSON sind gängige Datenaustauschformate. In Python können wir verschiedene Bibliotheken zum Konvertieren zwischen XML und JSON verwenden. In diesem Artikel werden mehrere häufig verwendete Methoden mit Codebeispielen vorgestellt. 1. Um XML in Python in JSON zu konvertieren, können wir das Modul xml.etree.ElementTree verwenden

Behandeln von Fehlern und Ausnahmen in XML mit Python XML ist ein häufig verwendetes Datenformat zum Speichern und Darstellen strukturierter Daten. Wenn wir Python zum Verarbeiten von XML verwenden, können manchmal Fehler und Ausnahmen auftreten. In diesem Artikel werde ich die Verwendung von Python zur Behandlung von Fehlern und Ausnahmen in XML vorstellen und einige Beispielcodes als Referenz bereitstellen. Verwenden Sie Try-Exception-Anweisungen, um XML-Parsing-Fehler abzufangen. Wenn wir Python zum Parsen von XML verwenden, können manchmal Fehler auftreten

Python analysiert Sonderzeichen und Escape-Sequenzen in XML. XML (eXtensibleMarkupLanguage) ist ein häufig verwendetes Datenaustauschformat, das zum Übertragen und Speichern von Daten zwischen verschiedenen Systemen verwendet wird. Bei der Verarbeitung von XML-Dateien kommt es häufig vor, dass Sonderzeichen und Escape-Sequenzen enthalten sind, die zu Analysefehlern oder einer Fehlinterpretation der Daten führen können. Daher müssen wir beim Parsen von XML-Dateien mit Python verstehen, wie mit diesen Sonderzeichen und Escape-Sequenzen umgegangen wird. 1. Sonderzeichen und
