0

「country」要素を「cd」要素の属性に変更し、「id」属性を「cd」要素に追加するために、次の cdcatalog.xml を変換する xquery ステートメントを作成しようとしています。インクリメントされた整数 (1,2,3...)。FLOWR はここで適用されますか、それとも変更を追加して実行するために他の関数を使用する必要がありますか? cdcatalog.xml は次のとおりです。

<catalog>
  <cd>
    <title>Empire Burlesque</title>
    <artist>Bob Dylan</artist>
    <country>USA</country>
    <company>Columbia</company>
    <price>10.90</price>
    <year>1985</year>
  </cd>
  <cd>
   <title>Hide your heart</title>
   <artist>Bonnie Tyler</artist>
   <country>UK</country>
   <company>CBS Records</company>
   <price>9.90</price>
   <year>1988</year>
  </cd>
  <cd>
   <title>Greatest Hits</title>
   <artist>Dolly Parton</artist>
   <country>USA</country>
   <company>RCA</company>
   <price>9.90</price>
   <year>1982</year>
  </cd>
  <cd>
   <title>Still got the blues</title>
   <artist>Gary Moore</artist>
   <country>UK</country>
   <company>Virgin records</company>
   <price>10.20</price>
   <year>1990</year>
  </cd>
</catalog>

そして、出力は次のようになります

<catalog>
 <cd id="1" country="USA">
   <title>Empire Burlesque</title>
   <artist>Bob Dylan</artist>
   <company>Columbia</company>
   <price>10.90</price>
   <year>1985</year>
 </cd>
 <cd id="2" country="UK">
   <title>Hide your heart</title>
   <artist>Bonnie Tyler</artist>
   <company>CBS Records</company>
   <price>9.90</price>
   <year>1988</year>
 </cd>
4

1 に答える 1

2
element catalog {
  for $cd at $pos in doc('cdcatalog.xml')/catalog/cd
  return
    element cd {
      attribute id { $pos },
      attribute country { $cd/country },
      $cd/* except $cd/country
    }
}
于 2013-11-01T15:32:10.950 に答える