Ich brauche den Titel der Bücher und Zeitschriften zurückzukehren, wo „John Doe“, der Autor ist, aber meine XML-Datei eingerichtet ist, wie:Ist es möglich, OR für eine WHERE-Klausel in XQuery zu verwenden?
<library>
<book>...</book>
<article>...</article>
</library>
Es gibt 6 Bücher und Zeitschriften insgesamt.
Ich weiß, dass, wenn diese SQL war ich so etwas wie tun könnte:
SELECT title
FROM library
WHERE bookauthor = "John Doe" OR articleauthor = "John Doe"
(diese Datenbank würde nicht normalisiert, aber ich versuche zu zeigen, dass ich glaube, ich weiß, was ich tun muss, , nur nicht sicher, wie mit XQuery)
ich folgenden versucht und es kehrte alle 6 Titel zu mir:
for $x in doc("xmldata.xml")/library
let $a := $x/article
let $b := $x/book
return ($a/title, $b/title)
Aber ich bin nicht sicher, was mit der Where-Klausel zu tun. Ebenso habe ich versucht, die folgenden, habe an der gleichen Stelle stecken:
for $x in doc("xmldata.xml")/library
return ($x/article/title, $x/book/title)
Wenn ich in ein hinzuzufügen versuchen, where-Klausel es noch alle 6 Einträge zurückgibt, obwohl es nur 1 Buch und 1 Artikel zurückgeben sollte:
for $x in doc("xmldata.xml")/library
where $x/article/author = 'John Doe'
where $x/book/author = 'John Doe'
return ($x/article/title, $x/book/title)
Kann mir bitte jemand helfen? Vielleicht indem sie mich in die richtige Richtung weisen oder darauf hinweisen, wo ich falsch liege.
Vollständige XML-Datei:
<library>
<book>
<author>John Doe</author>
<title>Turnitin</title>
</book>
<article>
<author>John Doe</author>
<title>Evaluating</title>
</article>
<article>
<author>Shannon, L.</author>
<title>Reconceptualising</title>
</article>
<book>
<author>Burden, David</author>
<title>An evaluation</title>
</book>
<article>
<author>Moscrop, C.</author>
<title>Evaluating a systematic method</title>
</article>
<book>
<author>Beaumont, C.</author>
<title>Beyond e-learning</title>
</book>
</library>
Können Sie eine größere Stichprobe der Quelle XML schreiben? Ich sehe nichts falsch mit Ihrer letzten Abfrage. – wst
Ich habe jetzt die Quell-XML am Ende des Posts hinzugefügt, danke! – user2633709