Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
[erledigt] - XML Namespaces generisch ermitteln
mosspower
myCSharp.de - Member

Avatar #avatar-2662.jpg


Dabei seit:
Beiträge: 452
Herkunft: Bamberg

Themenstarter:

[erledigt] - XML Namespaces generisch ermitteln

beantworten | zitieren | melden

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.
Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von mosspower am .
private Nachricht | Beiträge des Benutzers
mosspower
myCSharp.de - Member

Avatar #avatar-2662.jpg


Dabei seit:
Beiträge: 452
Herkunft: Bamberg

Themenstarter:

beantworten | zitieren | melden

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;
       }
     }
    ....
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von mosspower am .
private Nachricht | Beiträge des Benutzers