Announcement

Collapse
No announcement yet.

Nicht verständlicher XQuery Output

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

  • Nicht verständlicher XQuery Output

    Hätte da mal ein XQuery Programm

    let $a := (<a>7</a>, <b>7.0</b>, <c>seven </c>, <d>007</d>)
    for $b in $a, $c in $a
    return <result >{$a = $b}, {$b = $c}</result>

    das mir folgenden Output liefert
    <?xml version="1.0" encoding="UTF-8"?>
    <result>true, true</result>
    <result>true, false</result>
    <result>true, false</result>
    <result>true, false</result>
    <result>true, false</result>
    <result>true, true</result>
    <result>true, false</result>
    <result>true, false</result>
    <result>true, false</result>
    <result>true, false</result>
    <result>true, true</result>
    <result>true, false</result>
    <result>true, false</result>
    <result>true, false</result>
    <result>true, false</result>
    <result>true, true</result>

    also ne doppelte for Schleife. Für {$a = $b} immer true verständlich, aber das Ergbenis für {$b = $c} bekomm ich nicht auf die Reihe. Hat jemand ne Idee welche Sequenzen er da vergleicht?

  • #2
    Es wird jeder Wert mit jedem verglichen und dass passt halt nur, wenn sich dieselben Werte "begegnen", da das auf Zeichenkettenebene (=Textknoten) passiert, also mit der Sequenz ("7","7.0","seven","007").

    Mit der letzten Zeile in dieser Form sieht das schon anders aus, da nun mit Zahlenwerten operiert wird ("seven" wird zu NaN):
    Code:
    return <result>{$a = $b}, {number($b) = number($c)}</result>
    
    <result>true, true</result>
    <result>true, true</result>
    <result>true, false</result>
    <result>true, true</result>
    <result>true, true</result>
    <result>true, true</result>
    <result>true, false</result>
    <result>true, true</result>
    <result>true, false</result>
    <result>true, false</result>
    <result>true, false</result>
    <result>true, false</result>
    <result>true, true</result>
    <result>true, true</result>
    <result>true, false</result>
    <result>true, true</result>

    Comment

    Working...
    X