Ein vorläufiges Verständnis des Namespace beim XML-Parsing

黄舟
Freigeben: 2017-03-17 17:32:53
Original
1927 Leute haben es durchsucht

Das häufigste Problem, auf das Anfänger beim Parsen von XML-Dateien stoßen können, ist wahrscheinlich der Namespace von XML. Dieser Artikel soll eine kurze Einführung in den Namespace geben. Es erübrigt sich zu erwähnen, dass die Bedeutung von

namespace dieselbe ist wie bei C++, C# und anderen Hochsprachen. XML hat auch das Problem doppelter Variablennamen, wenn es eine große Anzahl von Dateien gibt werden zusammengesetzt, daher müssen Namensräume verwendet werden, um Namen zu ändern. Variablen mit derselben Bedeutung, aber unterschiedlichen Bedeutungen werden isoliert. Dieser Artikel konzentriert sich auf die Analysemethode des Namespace.

Das Folgende ist eine einfache XML-Datei:

<root>
   <child id = ‘0’> 
      hello world 
   </child>
   <child id=&#39;1&#39;>
     one
   </child>
</root>
Nach dem Login kopieren

In diesem Beispiel gibt es keinen Namespace. Ich fürchte, die Beispiele, auf die Sie beim ersten Lernen stoßen XML ist so. Ein solches Beispiel ist irreführend. Nachdem Anfänger Hallo Welt analysiert haben, verwenden sie gerne dasselbe Programm, um tatsächliche XML-Dateien zu analysieren, und scheitern oft. Das Folgende ist eine XML-Datei, die von DoubanAPI

<?xml version="1.0" encoding="UTF-8"?>
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:db="http://www.douban.com/xmlns/" 
xmlns:gd="http://schemas.google.com/g/2005" xmlns:opensearch="http://a9.com/-/spec/opensearchrss/1.0/">  
<id>http://api.douban.com/event/10069638</id>  
<title>Debugging the Web </title>  
<category scheme="http://www.douban.com/2007#kind" term="http://www.douban.com/2007#event.salon"/>  
<author>    
<link href="http://api.douban.com/people/1057620" rel="self"/>    
<link href="http://www.douban.com/people/aka/" rel="alternate"/>    
<link href="http://t.douban.com/icon/u1057620-16.jpg" rel="icon"/>
    name>胖胖的大头鱼</name>    
    <uri>http://api.douban.com/people/1057620</uri>
    </author>
<db:attribute name="invite_only">no</db:attribute>
Nach dem Login kopieren

zurückgegeben wird. Wenn Sie so viele WWWs sehen, möchten Sie sie nicht lesen und einfach überspringen , und dann sehen Sie das bekannte , ich wende das Programm im obigen Beispiel entschieden an, aber ich bekomme nichts, wenn ich es ausführe. Was ist das Problem? C# bietet viele XML-Klassen, XDocument, . Kinderschuhe, beruhigen wir uns und schauen wir uns Zeile für Zeile an. Diese Zeile ist nicht interessant, schauen Sie hierno verstanden werden Ja, db ist die Abkürzung eines Namespace, die praktisch ist, um vor den Namen des Elements zu schreiben, sodass sich von , unterscheidet. Diese Abkürzung kann Variablen in einem Dokument unterscheiden, ist jedoch immer noch nicht für eine große Anzahl von Dokumenten geeignet, sodass der Namespace auch einen vollständigen Namen hat, der hier http://www.douban.com/xmlns/ lautet. Tatsächlich kann jeder Inhalt in diesem vollständigen Namen geschrieben werden, er wird jedoch als

String

behandelt. Zweitens kann er als Werbung verwendet werden. Daher verwendet im Allgemeinen jeder diese URL. Beim Parsen unterscheidet der Parser Variablen anhand ihres vollständigen Namens. Selbst wenn in beiden Dokumenten ein Das macht es klarer, aber was genau ist http://www.w3.org/2005/Atom? Es gibt nicht einmal eine Abkürzung. Hey, Sie haben Recht, wenn Sie das erkennen. Seine Abkürzung ist „“, leere Zeichenfolge. Dieses Ding wird als Standard-Namespace bezeichnet, und diejenigen, die scheinbar kein Präfix haben, befinden sich unter diesem Namespace. Der ist also nicht nackt, sondern tatsächlich <"http://www.w3.org/2005/Atom": Autor>, daher kann das nackte Programm ihn natürlich nicht analysieren.

Wie kann man es also analysieren? Hier ist ein Beispielprogramm, ich hoffe, es wird für alle hilfreich sein. Dieser Code funktioniert auf WP7. Ich habe auch eine Version von XmlDocument, aber WP7 hat diese Klasse nicht, das ist ein Mist. . .

Das obige ist der detaillierte Inhalt vonEin vorläufiges Verständnis des Namespace beim XML-Parsing. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle: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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage