嗨,我是 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>
在 B.xml 中搜索 A.xml 的每个 company/text(),如果找到匹配创建标签:TAG {company count="Number of the word of the word"}company/@name {/company}
在 B.xml 中搜索 A.xml 的每个 topic/text(),如果找到匹配创建标签 TAG {topic topic="该单词的出现次数"}topic/@group{/topic}
在B.xml中搜索A.xml的每个mood/text(),如果找到匹配[第一个单词的出现次数*{/mood[第一个单词]/@number}]+[第二个单词的出现次数*{/mood[第二个单词]/@数字})]....
获取元素的字数。