Laden...

[erledigt] - XML Namespaces generisch ermitteln

Erstellt von mosspower vor 12 Jahren Letzter Beitrag vor 12 Jahren 956 Views
mosspower Themenstarter:in
456 Beiträge seit 2007
vor 12 Jahren
[erledigt] - XML Namespaces generisch ermitteln

verwendetes Datenbanksystem: XML

Hallo "Kollegen",

ich suche nach einer Möglichkeit im .NET 2.0 (aus Gründen der Abwärtskompatibilität muss ich dieses Framework verwenden) aus beliebigen XML-Dateien alle Namespace-Deklarationen auszulesen.

Es geht darum, generisch nach bestimmten XML-Mustern zu suchen und Werte zu prüfen.

Ich habe bisher nichts gefunden und mit Regular Expressions da "drüberzugehen" ist auch nicht so der Bringer".

Danke schon mal im Voraus für etwaige Antworten.

Beispiel:

 namespaceManager.AddNamespace("db", "http://www.springframework.net/database");

Jetzt kann ich das zwar so hardcoded programmieren und zu 95 Prozent ist das auch immer richtig (dank an Copy & Paste), darauf verlassen kann ich mich aber nicht, dass das Prefix immer db lautet oder der Namespace immer der Obige ist.

mosspower Themenstarter:in
456 Beiträge seit 2007
vor 12 Jahren

OK, manchmal ist es auch viel einfacher als ursprünglich gedacht ... und da ich Monologe liebe, hier gleich die Lösung:


// Fetch Spring database connections
if (xmlDocument.FirstChild.Name.Equals("objects"))
{
    String dataProviderNamespaceName = String.Empty;
    String dataProviderNamespacePrefix = String.Empty;

    // We iterate all attributes and search for the database provider prefix
    foreach (XmlAttribute attribute in xmlDocument.FirstChild.Attributes)
    {
       if (attribute.Name.StartsWith("xmlns:"))
       {
           dataProviderNamespaceName = attribute.Value;
           dataProviderNamespacePrefix = attribute.Name.Substring(attribute.Name.IndexOf(":") + 1);
           break;
       }
     }
    ....