Folgende XML-Datei:
<products>
<product>
<ID>1001</ID>
<Name>Name1001</Name>
<description>Beschreibung Name1001</description>
</product>
<product>
<ID>1002</ID>
<Name>Name1002</Name>
<description>Beschreibung Name1002</description>
</product>
<product>
<ID>1003</ID>
<Name>Name1003</Name>
<description>Beschreibung Name1003</description>
</product>
</products>
Soll nach der ID=1002 durchsucht werden.
Folgendes XQuery Statement macht dabei Probleme:
<products>
{
for $x in //product
if ($x//ID/text()="1002"))
then return <result>{$x//Name/text()}</result>
}
</products>
Dies liefert eine TargetException für die If-Anweisung.
Wird dies als Where-Anweisung abgebildet:
<products>
{
for $x in //product
where $x//ID="1002"
return <result>{$x//Name/text()}</result>
}
</products>
Dann funktioniert es.
Warum geht die IF-Anweisung nicht?
<products>
<product>
<ID>1001</ID>
<Name>Name1001</Name>
<description>Beschreibung Name1001</description>
</product>
<product>
<ID>1002</ID>
<Name>Name1002</Name>
<description>Beschreibung Name1002</description>
</product>
<product>
<ID>1003</ID>
<Name>Name1003</Name>
<description>Beschreibung Name1003</description>
</product>
</products>
Soll nach der ID=1002 durchsucht werden.
Folgendes XQuery Statement macht dabei Probleme:
<products>
{
for $x in //product
if ($x//ID/text()="1002"))
then return <result>{$x//Name/text()}</result>
}
</products>
Dies liefert eine TargetException für die If-Anweisung.
Wird dies als Where-Anweisung abgebildet:
<products>
{
for $x in //product
where $x//ID="1002"
return <result>{$x//Name/text()}</result>
}
</products>
Dann funktioniert es.
Warum geht die IF-Anweisung nicht?
Comment