こんにちは、marklogic と Xquery の世界は初めてです。Marklogic Xquery で次のロジックを記述するための出発点を考えることができません。次のことを達成できるように、誰かがアイデア/サンプルを提供してくれるとありがたいです:
B.XML の単語検索に基づいて A.XML を照会したいと考えています。クエリは C.XML を生成する必要があります。ロジックは次のようになります。
A.XML
<root>
<content> The state passed its first ban on using a handheld cellphone while driving in 2004 Nokia Vodafone Nokia Growth Recession Creicket HBO</content>
</root>
B.XML
<WordLookUp>
<companies>
<company name="Vodafone">Vodafone</company>
<company name="Nokia">Nokia</company>
</companies>
<topics>
<topic group="Sports">Cricket</topic>
<topic group="Entertainment">HBO</topic>
<topic group="Finance">GDP</topic>
</topics>
<moods>
<mood number="4">Growth</mood>
<mood number="-5">Depression</mood>
<mood number="-3">Recession</mood>
</moods>
C.XML (結果 XML)
<root>
<content> The state passed its first ban on using a handheld cellphone while driving in 2004 Nokia Vodafone Nokia Growth Recession Creicket HBO</content>
<updatedElement>
<companies>
<company count="1">Vodafone</company>
<company count="2">Nokia</company>
</companies>
<mood>1</mood>
<topics>
<topic count="1">Sports</topic>
<topic count="1">Entertainment</topic>
</topics>
<word-count>22</word-count>
</updatedElement>
</root>
A.xml の各 company/text() を B.xml で検索し、一致する場合はタグを作成: TAG {company count="その単語の出現回数"}company/@name {/company}
A.xml の各 topic/text() を B.xml で検索し、一致するものが見つかった場合は、タグ TAG を作成します {topic topic="その単語の出現回数"}topic/@group{/topic}
B.xml 内の A.xml のそれぞれの気分/テキスト() を検索し、一致が見つかった場合 [最初の単語の出現回数 * {/mood[最初の単語]/@number}] + [2 番目の単語の出現回数 * {/mood[2 番目の単語] ]/@番号})]....
要素の単語数を取得します。