Announcement

Collapse
No announcement yet.

XQuery: Probleme mit If-then Anweisung

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • XQuery: Probleme mit If-then Anweisung

    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?

  • #2
    Beachte die Reihenfolge und den obligatorischen else-Zweig, welcher hier leer bleibt:
    Code:
    <products>
    {
    for $x in //product
    return if($x/ID/text()="1002") then <result>{$x/Name/text()}</result> else()
    }
    </products>

    Comment


    • #3
      Danke!!

      Hi Thomas,

      danke für die Hilfe. Der fehlende else-Zweig war das Problem.

      Comment

      Working...
      X