長時間的監聽器,首次調用者。我對XPath比較陌生,在這裏和其他地方查看了其他幾個線程,但我似乎無法獲得查詢工作,任何幫助都會很棒。可變多個條件的XPath查詢
我有XML如下:
<catalog>
<book pgid="28054" lang="en">
<title>The Brothers Karamazov</title>
<author>Dostoyevsky, Fyodor</author>
<friendly_title>The Brothers Karamazov by Fyodor Dostoyevsky</friendly_title>
<file>
<type>ePub</type>
<path>cache/generated/28054/</path>
<name>pg28054.epub</name>
<size>800</size>
</file>
<file>
<type>PDF</type>
<path>2/8/0/5/28054/</path>
<name>28054-pdf.pdf</name>
<size>5829</size>
</file>
<file>
<type compression="zipped">PDF</type>
<path>2/8/0/5/28054/</path>
<name>28054-pdf.zip</name>
<size>1693</size>
</file>
<file>
<type encoding="utf-8" compression="zipped">Text</type>
<path>2/8/0/5/28054/</path>
<name>28054-0.zip</name>
<size>726</size>
</file>
</book>
</catalog>
(目錄是根元素,並且在這個例子中有沒有<contributor>
元素)
我有查詢上作者,貢獻者,標題工作,和語言搜索,但我越來越掛上添加文件類型的條件。這個查詢找到包含「Dostoyevsky」作者或貢獻者的書籍和包含語言「en」的「Brothers」的標題是working(即給出預期的結果),但是如果有更好的方法來編寫它,
/catalog//book/*[(contains(self::author,'Dostoyevsky') or contains(self::contributor,'Dostoyevsky')) and contains(../title,'Brothers') and ../@lang = 'en']
我不能去工作限制查詢結果追加and ../file/type='PDF'
什麼特定類型的文件,即。與|
工會沒有任何運氣。
在此先感謝。
哦,如果它很重要,查詢需要動態建立(從表單輸入),所以它需要保留一個通用的語法,可以處理任何數量的用戶提供的標準。
請,做你的功課結合起來,並在最少提供真實的,格式良好且有意義的XML文檔。 – 2011-12-20 14:18:26
Dimitre,你想要什麼?這是我真正的XML。我認爲內容不相關。 – swornabsent 2011-12-20 14:31:24
@swornabsent:Dimitre是對的,你的XML格式不正確。您編寫lang屬性的方式不是XML。您應該更新您的問題以使其有效(例如lang =「...」)。 – 2011-12-20 14:36:26