Leistungsvergleich von XML-Datenlesemethoden (1)
In den letzten Monaten habe ich mich aufgrund von SOA mit XML-Operationen beschäftigt und SQL fast vergessen. Es ist mittlerweile bekannt, dass es mindestens vier häufig verwendete XML-Datenbearbeitungsmethoden (ähnlich wie Java) gibt, die Eigenschaften, Vor- und Nachteile jeder dieser Methoden wurden jedoch nicht tatsächlich verglichen. Ich habe zufällig gesehen, dass es im Internet keine Experimente in diesem Bereich gibt, daher werde ich es zusammenfassen.
Lesen Sie zu Beginn des Tests die XML-Quelle, verwenden Sie einen relativ großen RSS-Dateilink und kopieren Sie ihn in das Projektverzeichnis bin/debug.
Stream xmlStream = new MemoryStream(File.ReadAllBytes(path));
1. XmlDocument-Methode
Code
1 static IList testXmlDocument() 2 { 3 var doc = new XmlDocument(); 4 doc.Load(xmlStream); 5 var nodeList = doc.DocumentElement.ChildNodes; 6 var lstChannel = new List<Object>(nodeList.Count ); 7 foreach (XmlNode node in nodeList) 8 { 9 var channel = new 10 { 11 Title = node.SelectSingleNode("title").InnerText, 12 Link = node.SelectSingleNode("link").InnerText, 13 Description = node.SelectSingleNode("description").InnerText, 14 Content = node.SelectSingleNode("content").InnerText, 15 PubDate = node.SelectSingleNode("pubDate").InnerText, 16 Author = node.SelectSingleNode("author").InnerText, 17 Category = node.SelectSingleNode("category").InnerText 18 }; 19 lstChannel.Add(channel); 20 } 21 return lstChannel; 22 }
2. XPathNavigator-Methode
Code
1 static IList testXmlNavigator() 2 { 3 var doc = new XmlDocument(); 4 doc.Load(xmlStream); 5 var nav = doc.CreateNavigator(); 6 nav.MoveToRoot(); 7 var nodeList = nav.Select("/channel/item"); 8 var lstChannel = new List<Object>(nodeList.Count); 9 foreach (XPathNavigator node in nodeList) 10 { 11 var channel = new 12 { 13 Title = node.SelectSingleNode("title").Value, 14 Link = node.SelectSingleNode("link").Value, 15 Description = node.SelectSingleNode("description").Value, 16 Content = node.SelectSingleNode("content").Value, 17 PubDate = node.SelectSingleNode("pubDate").Value, 18 Author = node.SelectSingleNode("author").Value, 19 Category = node.SelectSingleNode("category").Value 20 }; 21 lstChannel.Add(channel); 22 } 23 return lstChannel; 24 }
3. XmlTextReader-Methode
Code
1 static List<Channel> testXmlReader() 2 { 3 var lstChannel = new List<Channel>(); 4 var reader = XmlReader.Create(xmlStream); 5 while (reader.Read()) 6 { 7 if (reader.Name == "item" && reader.NodeType == XmlNodeType.Element) 8 { 9 var channel = new Channel(); 10 lstChannel.Add(channel); 11 while (reader.Read()) 12 { 13 if (reader.Name == "item") break; 14 if (reader.NodeType != XmlNodeType.Element) continue; 15 switch (reader.Name) 16 { 17 case "title": 18 channel.Title = reader.ReadString(); 19 break; 20 case "link": 21 channel.Link = reader.ReadString(); 22 break; 23 case "description": 24 channel.Description = reader.ReadString(); 25 break; 26 case "content": 27 channel.Content = reader.ReadString(); 28 break; 29 case "pubDate": 30 channel.PubDate = reader.ReadString(); 31 break; 32 case "author": 33 channel.Author = reader.ReadString(); 34 break; 35 case "category": 36 channel.Category = reader.ReadString(); 37 break; 38 default: 39 break; 40 } 41 } 42 } 43 } 44 return lstChannel; 45 }
4. Linq to XML-Methode
Code
1 static IList testXmlLinq() 2 { 3 var xd = XDocument.Load(xmlStream); 4 var list = from node in xd.Elements("channel").Descendants("item") 5 select new 6 { 7 Title = node.Element("title").Value, 8 Link = node.Element("link").Value, 9 Description = node.Element("description").Value, 10 Content = node.Element("content").Value, 11 PubDate = node.Element("pubDate").Value, 12 Author = node.Element("author").Value, 13 Category = node.Element("category").Value 14 }; 15 return list.ToList(); 16 }
Testergebnisse:
XmlDocment 47ms XPathNavigator 42ms XmlTextReader 23ms Xml Linq 28ms
Um mein Verständnis zusammenzufassen, XmlDocument Die Operation folgt grundsätzlich der W3C-DOM-Betriebsmethode, aber alle Knoten müssen in Objekte analysiert und in den Speicher geladen werden, was oft zu viel Verschwendung führt. Daher empfehlen die eigenen Programmierstandards von Microsoft die Verwendung nicht. Da hier alle Knoten gelesen werden, unterscheidet sich die Leistung möglicherweise nicht wesentlich von der Navigator-Methode. Unter den drei zufälligen Lesemethoden weist Xml Linq die höchste Leistung auf, der Methodenname ist jedoch etwas umständlich. Die XmlTextReader-Methode ist die sogenannte SAX, die schreibgeschützt ist und die höchste Leistung aufweist. Die Zugriffslogik muss jedoch genauer gesteuert werden, und anonyme Klassen können nicht zum Speichern verwendet werden Daten.
.Net 3.5 Release XML Linq kann die ersten beiden Methoden sehr gut ersetzen, es ist am besten, es zu verwenden. Nur in einigen Fällen, wenn die Leistungsanforderungen extrem hoch sind oder die Menge der zu lesenden XML-Daten zu groß ist, um sie auf einmal herunterzuladen oder in den Speicher einzulesen, müssen Sie sich auf XmlTextReader festlegen.
Das Obige ist der Leistungsvergleich der XML-Datenlesemethoden (1). Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!

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

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

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

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.

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

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
