2013-03-23 75 views
0

節點我不是XQuery的專家,我在尋找,雖然文件的大集合, 的XML文檔有一個這樣的結構,使用XQuery搜索具有具體細節

<files> 
<file> 
    <name>1</name> 
    <contents> 
     <content>games</content> 
     <content>movies</content> 
    </contents> 
</file> 
<file> 
    <name>2</name> 
    <contents> 
     <content>games</content> 
     <content>picture</content> 
     <content>work</content> 
    </contents> 
</file> 

其用戶喜歡我有一組內容等可能是(「遊戲」,「電影」),我不得不返回名稱

到目前爲止,我只寫了這

for $x in /files/file 
    return $x/content 

我想知道這對XQuery是否可行?如果可能的話,給我一些指導方針,我不知道所有的xquery結構,這是我的主要缺點

+0

你還沒有明確你的輸入是:這是一個XML文檔與很多名爲「文件」的元素,還是很多文件都包含一個XML文檔?而且你還沒有明確說明你的期望輸出是什麼。你想要每個文件的名稱?在這種情況下,它只是'/ files/file/name'。 – 2013-03-24 09:48:21

+0

它是一個單一的XML文件,包含'文件'標籤中的所有'文件'標籤 – user203788 2013-03-24 11:55:31

+0

你能說明你想要的輸出嗎?它會是文本,XML,HTML還是其他?當你說「我必須返回這個名字」時,你的意思是說,對於你想要產生一個「名稱」列表(即「content」元素內容)的每個文件?如果是這樣,這個列表是以逗號分隔的列表的形式出現的,或者說是什麼?你需要將文件標識與「名稱」關聯嗎?你正在尋找什麼樣的樣品會很有幫助。 – Jollymorphic 2013-03-25 19:56:16

回答

0

你必須在xpath中提供contents元素,因爲它包含content元素值。 你可以試試這個如果u想要的content

for $x in /files/file/contents/content 
return xs:string($x) 

只值你也可以嘗試這個

for $x in /files/file/contents/content 
return $x/text()