0

与えられた:

declare variable $seq :=  (
  (('foo', 'bar'), ('baz'))  
);

<result>{ ($seq[(.)[1][1] = 'foo'])[2][1] }</result>

私が期待する:

<result>baz</result>

しかし、得る:

</result>

なんで?

4

2 に答える 2

2

XQuery では配列に次元(('foo', 'bar'), ('baz'))がないため、 と変わりません('foo', 'bar', 'baz')

($seq[(.)[1][1] = 'foo'])$seq[. = 'foo']=>と同じtext{'foo'}です。これは長さ 1 のシーケンスとして扱われます。つまり(text{'foo'})[1]=>text{'foo'}ですが、(text{'foo'})[2]明らかに です()

于 2013-08-14T23:31:12.803 に答える