Heim  >  Artikel  >  Backend-Entwicklung  >  Ein vorläufiges Verständnis des Namespace beim XML-Parsing

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

黄舟
黄舟Original
2017-03-17 17:32:531926Durchsuche

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>

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>

zurückgegeben wird. Wenn Sie so viele WWWs sehen, möchten Sie sie nicht lesen und einfach überspringen , und dann sehen Sie das bekannte 48fe722b397613e801e59f453d6c9330 069b8d673ec8f2ad312c1b3588acdb70, 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. ab3cb675d9286761e5f198592921f93dDiese Zeile ist nicht interessant, schauen Sie hier4c5f66200ef087b6ba5ecf512894ef32noea6f540cddccdca7d953c18eb1eb3288 verstanden werden Ja, db ist die Abkürzung eines Namespace, die praktisch ist, um vor den Namen des Elements zu schreiben, sodass sich 5a37d16f53356ad61c30ba4c13522081 von e8aa4f7ce323535a9b01247c46fe6139, 02d8a117819869c76bcd3e50c8e21798 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 160e28fc5dc6fa4c1eb655191dc9a90f ist also nicht nackt, sondern tatsächlich 185329a6b1db6f651cf8c76ec76e6661, 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!

Stellungnahme:
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