Inhaltsverzeichnis
XMLProgrammierung-SAX" >XMLProgrammierung-SAX
Grundlagen Übersicht
Liste der allgemeinen Methodenparameter des Ereignishandlers
Parsing-Methode
Heim Backend-Entwicklung XML/RSS-Tutorial XML-Programmierung-SAX

XML-Programmierung-SAX

Feb 20, 2017 pm 03:11 PM

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 die

SAX-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

Parsing-Mechanismus

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.

In

Java

können Sie durch Erben der Schnittstelle

DefaultHandler

ein

SAX 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.

Liste der allgemeinen Methodenparameter des Ereignishandlers

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()

Parsing-Methode

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.

Parsing-Schritt

1

, durch Aufrufen von SAXParserFactorys Die Methode newInstance() ruft das Parser-Factory-Objekt Sax ab.

2

, erhalten durch Aufruf der Methode newSAXParser() über den Parser Sax Factory-Objekt-ParserSAXParser-Objekt

3

, indem die parse-Methode des Parser-Objekts aufgerufen wird Parser mit Event-Handler-Objekt verknüpfen

Fall:

XML6.xml

<?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</年龄>
		<介绍>好</介绍>
	</学生>
</班级>
Nach dem Login kopieren


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();
	}
}
Nach dem Login kopieren
Das Obige ist der Inhalt von XML Programming-SAX. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn).



Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

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

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Kann ich eine XML-Datei mit PowerPoint öffnen? Kann ich eine XML-Datei mit PowerPoint öffnen? Feb 19, 2024 pm 09:06 PM

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

Verwendung von Python zum Zusammenführen und Deduplizieren von XML-Daten Verwendung von Python zum Zusammenführen und Deduplizieren von XML-Daten Aug 07, 2023 am 11:33 AM

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 Konvertieren Sie XML-Daten in Python in das CSV-Format Aug 11, 2023 pm 07:41 PM

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

XML-Daten mit Python filtern und sortieren XML-Daten mit Python filtern und sortieren Aug 07, 2023 pm 04:17 PM

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 Sie XML-Daten mit PHP in die Datenbank Importieren Sie XML-Daten mit PHP in die Datenbank Aug 07, 2023 am 09:58 AM

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 Python implementiert die Konvertierung zwischen XML und JSON Aug 07, 2023 pm 07:10 PM

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 Behandeln von Fehlern und Ausnahmen in XML mit Python Aug 08, 2023 pm 12:25 PM

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 Python analysiert Sonderzeichen und Escape-Sequenzen in XML Aug 08, 2023 pm 12:46 PM

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

See all articles