Re: xpath not a good replacement for xpath_string
От | Mike Rylander |
---|---|
Тема | Re: xpath not a good replacement for xpath_string |
Дата | |
Msg-id | b918cf3d0907281300k7d3530c8ta59e33c75804eb62@mail.gmail.com обсуждение исходный текст |
Ответ на | xpath not a good replacement for xpath_string (pgsql@mohawksoft.com) |
Список | pgsql-hackers |
On Tue, Jul 28, 2009 at 3:21 PM, <pgsql@mohawksoft.com> wrote: > Sorry to bring this up, I know you've been fighting about XML for a while. > > Currently, I am using XML2 functionality and have tried to get the newer > XPath function to work similarly, but can't quite seem to do it. > > I think the current xpath function is too limited. (The docs said to post > problems to hackers if I have an issue.) > > For instance, we have a web application that uses java with an XML class > serializer/deserializer Xstream. It creates XML that looks like this: > > <com.company.local.myclass> > <uuid>b5212259-a91f-4dca-a547-4fe89cf2f32c</uuid> > <email>joe@somedomain.com</email> > </com.company.local.myclass> > > My current strategy is to use xml2 as: > > select xpath_string(datum, E'/com\.company\.local\.myclass/uuid) as uuid > from table; > > Which produces a usable: > b5212259-a91f-4dca-a547-4fe89cf2f32c > > I have been trying to use xpath > select xpath(E'/com\.company\.local\.myclass/uuid', XMLPARSE(CONTENT > datum)) as uuid from table; > > Which produces an unusable: > {<uuid>b5212259-a91f-4dca-a547-4fe89cf2f32c</uuid>} > How about: SELECT (xpath(E'/com\.company\.local\.myclass/uuid/text()', XMLPARSE(CONTENT datum)))[1] as uuid from table; Not as clean, but it produces the same result as xpath_string(). Combined with array_to_string() could can collapse the array instead of just grabbing the first element (in cases other than uuid, of course). -- Mike Rylander| VP, Research and Design| Equinox Software, Inc. / The Evergreen Experts| phone: 1-877-OPEN-ILS (673-6457)|email: miker@esilibrary.com| web: http://www.esilibrary.com
В списке pgsql-hackers по дате отправления: