Gibt es einen Operator in XPath 1.0, der als "in" -Operator in SQL fungiert?XPath "in" -Operator
select * from tbl_students where id in (1,2,3)
Gibt es einen Operator in XPath 1.0, der als "in" -Operator in SQL fungiert?XPath "in" -Operator
select * from tbl_students where id in (1,2,3)
Der Operator = von XPath 1.0 funktioniert auf diese Weise, obwohl XPath 1.0 keine Syntax für das Schreiben von Sequenzen bietet. Also, wenn Sie ein XML-Dokument des Formulars haben
<doc>
<value>1</value>
<value>2</value>
<value>3</value>
</doc>
dann ein Ausdruck wie //doc[value = 2]
zurückkehren wird, dass doc
Element. In XPath 2.0 erstellt die Syntax (1, 2, 3)
eine Sequenz von drei Ganzzahlen, und Sie können Bedingungen wie $i = (1, 2, 3)
schreiben. Literale Sequenzen sind jedoch keine Funktion von XPath 1.0 - die einzige Möglichkeit, mehrere Werte auf einer Seite eines XPath-Ausdrucks zu erhalten, besteht darin, einen Pfadausdruck zu verwenden, der mehreren Knoten entspricht.
Ich hatte das gleiche Problem, die obige Antwort ist richtig. Um es klar, in Xpath dies etwas aussehen wird:
//*:document[*:documentType=("magazine","newspaper")]
Weichen wäre der equivalant von:
select * from documents where documenttype in ('newsletter','magazine')
Um herauszufinden, ob die ‚id‘ Sie suchen ist in der Reihenfolge der (1, 2, 3, 4) index-of() könnte eine Wahl sein. Achten Sie darauf, dass es eine Indexliste zurückgibt.
Für ein Dokument Teil wie
<student id='1'/>
<student id='101'/>
<student id='1001'/>
Select wird so etwas wie
//*[not(empty(index-of((1, 2, 3, 4), @id)))]
+1 für eine präzise Antwort. –