Ich versuche, mehrere Attribute in XML zu suchen:
%Vor%Ich muss überprüfen, ob im Feld "Username" und "UserPassword" Werte sind, die ich mit meinen Dataset-Werten vergleiche. Gibt es eine Möglichkeit, mehrere Attribute (UND-Bedingung) zu überprüfen, ohne meine eigene Verwendungslogik zu schreiben Fahnen und Ausbrechen von Schleifen.
Gibt es eine eingebaute Funktion von XMLDoc, die das tut? Jede Hilfe wäre willkommen!
Um in dem von Ihnen bereitgestellten XML-Auszug nach dem zu suchen, was Sie möchten, benötigen Sie den folgenden XPath-Ausdruck:
%Vor%Dies würde entweder etwas zurückgeben, wenn Benutzername und Passwort übereinstimmen - oder nicht, wenn dies nicht der Fall ist.
Der XPath-Ausdruck ist natürlich nur ein String - Sie können ihn dynamisch mit Werten erstellen, die zum Beispiel in ein Formularfeld eingegeben wurden.
Wenn Sie angeben, in welcher Sprache / Umgebung Sie sich befinden, werden die hier veröffentlichten Code-Beispiele wahrscheinlich spezifischer.
Dies ist eine Möglichkeit, dies in C # zu tun (VB.NET ist analog):
%Vor%Beachten Sie, dass weder Benutzernamen noch Passwörter einfache Anführungszeichen enthalten können oder dass das obige Beispiel fehlschlägt. Hier ist einige Informationen zu dieser Besonderheit .
Es gibt auch eine How-To-Anleitung von Microsoft: SO WIRD'S GEMACHT: Verwenden Sie die System.Xml.XmlDocument-Klasse zum Ausführen von XPath-Abfragen in Visual C # .NET
Das Suchen nach XML ist, wofür XPath gemacht wurde. Sie haben nicht angegeben, welche Sprache Sie verwenden, aber hier ist ein Artikel zum Verarbeiten von XML Verwenden von XPath in Java und hier ist einer mit C #.
Dies ist eine FAQ zu XPath -Ausdrücken .
Ein oder mehrere XPath-Ausdrücke (deren ausgewerteter Typ boolesch ist) können über die Booleschen Operatoren
Bitte beachten Sie, dass die Namen aller in Kleinbuchstaben geschrieben sind . Bei XPath wird die Groß- / Kleinschreibung beachtet, und eine andere Groß- / Kleinschreibung dieser Namen (z. B. "AND") wird nicht als Name der logischen Operatoren erkannt.
In diesem speziellen Fall lautet der gesuchte XPath-Ausdruck also Folgendes:
/*/*/field[@Username = your-ds-username and @UserPassword = your-ds-UserPassword]
Dabei sollten your-ds-username
und your-ds-UserPassword
durch die entsprechenden Werte ersetzt werden, die Sie aus dem Dataset verwenden möchten.
Um im Falle eines XML-Tags nach mehreren Attributen zu suchen, können wir den folgenden XPATH verwenden / APIS / API / Feld [@ Benutzername = 'Benutzername1'] [@ UserPassword = 'Passwort1']
Tags und Links xml search xml-attribute