0

各書籍のchapter-metadata.xmlisbn フォルダー (100 個の isbn フォルダーがあるため 100 個ありますchapter-metadata.xml) にストアがあり、marklogic データベース サーバーと章のメタデータが格納されます。Xml には、1 つの章のデータが含まれているか、空のいずれかです。チャプター情報が1つしか含まれていない場合chapter-metadata.xml、チャプター要素の下にチャプター情報を追加したい(私のチャプター情報はすべてのチャプターに共通です)。$chapter_sequencech001 ch002 ch003 ch004 ..などの変数に保存するかchapter-metadata.xml、チャプター情報がない場合は、チャプター番号の属性と値を持つチャプター要素を作成し、情報を追加します。チャプターが1つある場合は、以下にxml構造を配置しました情報と私の情報は要素のキーワードセットからのものです

<?xml version="1.0" encoding="UTF-8" ?> 
<chaptermetadata>
<bookisbn>isbn number</bookisbn>
<booktitle>Copyright</booktitle>
<chapter id="ch001"">
<keywordset>
<keyword role="primary">context</keyword> 
<keyword role="secondary">Copyright</keyword> 
<keyword role="tertiary">subject</keyword>
</keywordset> 
</chapter>
</chaptermetadata>

私は以下のようにしたい:

<?xml version="1.0" encoding="UTF-8" ?> 
<chaptermetadata>
<bookisbn>isbn number</bookisbn>
<booktitle>Copyright</booktitle>
<chapter id="ch001"">
<keywordset>
<keyword role="primary">context</keyword> 
<keyword role="secondary">Copyright</keyword> 
<keyword role="tertiary">subject</keyword>
</keywordset> 
</chapter>

<chapter id="ch002"">
<keywordset>
<keyword role="primary">context</keyword> 
<keyword role="secondary">Copyright</keyword> 
<keyword role="tertiary">subject</keyword>
</keywordset> 
</chapter>
so on to last chapter which I store in veriable
</chaptermetadata>

ありがとう、

ラジ

4

1 に答える 1

2

質問を理解するのは難しいですが、http://docs.marklogic.com/xdmp:directory と FLWOR 式から始めてください。これを関数に入れたとしましょう。実装する必要があるいくつかのヘルパー関数をハンドウェーブしますが、関数は次のようになります。

declare function chaptermetadata($isbn as xs:string)
as element(chaptermetadata) {
  <chaptermetadata>
  {
    <bookisbn>{ $isbn }</bookisbn>
    <booktitle>{ title($isbn) }</booktitle>
    for $chapter in xdmp:directory(isbn-uri($isbn), 'infinity')
    return element { fn:node-name($chapter) } {
      $chapter/@*,
      $chapter/keywordset }
  }
  <chaptermetadata>
};

さて、このコードは、必要に応じて変更できるように、コードが行っていることをすべて理解しない限り、あまり役に立ちません。これは、XQuery の使用例の 1 つのバリエーションであるため、これらを理解して理解することが役立つ場合があります: http://www.w3.org/TR/xquery-use-cases/

于 2012-11-29T18:17:22.000 に答える