簡體   English   中英

在XQuery中迭代插入屬性

[英]Iterative insertion of attributes in XQuery

我有一個巨大的XML文檔,其中一部分是

<tracklist>
  <track>
    <position>A1</position>
    <title>Un Momento Solo (North 5th. St. Dub)</title>
    <duration>6:04</duration>
  </track>
  <track>
    <position>A2</position>
    <title>Your Love Is Incredible</title>
    <duration>6:44</duration>
  </track>
  <track>
    <position>B1</position>
    <title>Roots</title>
    <duration>7:43</duration>
  </track>
  <track>
    <position>B2</position>
    <title>Un Momento Solo (Straight Up Mix)</title>
    <duration>7:06</duration>
  </track>
</tracklist>

我想補充的屬性tracklist名為tot下與子節點總數tracklist稱為track

for $i in db:open("releases1","releases.xml")/releases/release
return update insert attribute tot {count($i/tracklist/track)} into 
$i/tracklist/track

但是,我收到一個錯誤

[XPST0003] Unexpected end of query: 'insert attribut...'.

這是一個較小的語法問題。 更新語句的語法是

insert node [node] into [target-node]

關鍵字insert node總是一起出現的地方,如果我沒記錯的話,這里有兩個語法上的原因(否則,在解析過程中可能會有歧義)。

對於您的示例,刪除update關鍵字(該關鍵字不存在)並添加缺少的node

for $i in db:open("releases1","releases.xml")/releases/release
return insert node attribute tot {count($i/tracklist/track)} into 
$i/tracklist

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM