2011-03-08 105 views
1

我有一個PostgreSQL數據庫,其中包含一個名爲「data」的類型爲bytea的列的表。 「數據」包含大量的XML數據。從bytea列中包含XML數據的表中選擇

我希望能夠搜索特定的行,在「數據」中有一個名爲<fw:MyID></fw:MyID>的XML元素,其中包含「ID57841」。所以它看起來像<fw:MyID>ID57841</fw:MyID>

此外,我想輸出該列中的某些XML元素,如<fw:MyPassword></fw:MyPassword>

我無法在數據庫中寫入,只能讀取。我已經回答了很多Google搜索引擎,但不能提供任何幫助我的東西。有人可以幫幫我嗎?

+0

您可以使用反引號字符來逃避標記 – 2011-03-08 11:16:59

回答

1

您應該能夠使用convert_from()將bytea列轉換爲「即時」文本列,然後對結果應用xpath()函數。

喜歡的東西:

 
SELECT xpath('/fw:MyPassword/text()', convert_from(bytea_column, 'UTF-8')) 
FROM your_table; 

您將最有可能需要提供命名空間作爲第三個參數。
檢查出詳細的手冊中關於這個:
http://www.postgresql.org/docs/current/static/functions-xml.html#FUNCTIONS-XML-PROCESSING

BTW:到inlcude在您的文章<和>,您可以使用HTML實體& LT;和& gt;