Suche über mehrere Attribute in XML

7

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!

    
Murtaza Mandvi 09.12.2008, 19:04
quelle

4 Antworten

25

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

    
Tomalak 09.12.2008, 19:32
quelle
2

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 #.

    
Bill the Lizard 09.12.2008 19:16
quelle
1

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 "and" and "or" und mit der XPath-Funktion not () .

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.

    
Dimitre Novatchev 10.12.2008 02:37
quelle
0

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']

    
Dhanesh Kumar 04.11.2014 12:23
quelle

Tags und Links