Forums Neueste Beiträge
 

XML-Dokument: Namespace auslesen und für Abfrage verwenden

02/03/2009 - 11:02 von Maximilian Tescher | Report spam
Hi All,

machdem ich mein erstes Projekt mit so manchen Ecken dank Hilfe von
Euch geschafft habe, musste ich feststellen, das alle Mühe eigentlich
für die Tonne sind, ich habe Framework 3.5 auf dem Geràt, die
Zielgeràte haben nur Framework 2.0 :-(((

Nun gut, ich habe soweit alles umgestellt, nur mit XML habe ich mal
wieder ein Problem, das ganze Vorgehen muss wohl umgestellt werden da
sowas wie auslesen des verwendeten Namespace nur mit FW 3.5 oder so
geht.

Jetzt hàtte ich nochmals eine Bitte an Euch:
Wie könnte ich nun aus den XML-Dokumenten den verwendeten Framework
auslesen um diesen dann für meine Abfrage verwenden zu können?

Dabei gibt es Tags wie:
<mydoc:Name="..." Date="01.01.2009">

aber auch:
<Name></Name>

Habt Ihr mir dazu ein Vorhaben wie ich das ganze am besten lösen kann?

Wichtig ist eben, ich kenne im Vorfeld den Namespace nicht, dieser
müste ich für "<mydoc:..." ja erst auslesen.

Mit leicht gefrusteten Grüssen,
Maximilian
 

Lesen sie die antworten

#1 Martin Honnen
02/03/2009 - 13:51 | Warnen spam
Maximilian Tescher wrote:

Nun gut, ich habe soweit alles umgestellt, nur mit XML habe ich mal
wieder ein Problem, das ganze Vorgehen muss wohl umgestellt werden da
sowas wie auslesen des verwendeten Namespace nur mit FW 3.5 oder so
geht.



Das Auslesen von verwendeten Namensràumen geht mit XPathNavigator per
Methode GetNamespacesInScope
http://msdn.microsoft.com/en-us/lib...scope.aspx

Wenn man etwa folgendes XML-Dokument hat:

<?xml version="1.0" encoding="utf-8" ?>
<pf1:foo xmlns:pf1="http://example.com/ns1"
xmlns:pf2="http://example.com/ns2"></pf1:foo>

und dann folgenden Code benutzt:

Dim doc As New XPathDocument("..\..\XMLFile1.xml")
Dim root As XPathNavigator =
doc.CreateNavigator().SelectSingleNode("*")
For Each kvp As KeyValuePair(Of String, String) In
root.GetNamespacesInScope(Xml.XmlNamespaceScope.ExcludeXml)
Console.WriteLine("Prefix ""{0}"" mapped to URI ""{1}""",
kvp.Key, kvp.Value)
Next

ist die Ausgabe

Prefix "pf2" mapped to URI "http://example.com/ns2"
Prefix "pf1" mapped to URI "http://example.com/ns1"


Ansonsten musst du noch mal genauer erklàren, was du erreichen willst,
welche API (XPathNavigator, XmlDocument, XmlReader) du benutzt oder
benutzen willst.




Martin Honnen MVP XML
http://JavaScript.FAQTs.com/

Ähnliche fragen