I also had to store xml documents in couch, and I accomplished this by modifying an xml to json library to support e4x (the xml parser that comes with couch) and using an update handler.
I thought you might find it useful: http://gist.github.com/464483 Cory On Sun, Jul 4, 2010 at 4:49 AM, Nils Breunese <[email protected]> wrote: > == XML == > > Remember that CouchDB uses JSON for documents. I think you have three options > here: > > 1. Convert XML to a JSON document > > Instead of storing the XML you mentioned you could maybe transform your XML > into JSON (not always easy, as attributes and subelements can clash, the > other way around is easier): > > ---- > { > "type": "note", > "to": "Tove", > "from": "Jani", > "heading": "Reminder", > "body": "Don't forget me this weekend!" > } > ---- > > 2. Store the XML as a string field > > I believe this is what you were trying to do. Surround the XML with quotes > and escape any quotes in the XML. I believe most XML libraries have a > function to output XML as a string with all escaping done automatically. > > { > "XML": > "<note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't > forget me this weekend!</body></note>" > } > > 3. Store the XML as an attachment > > You can store arbitrary files as attachments to CouchDB documents. > > I'd go route 1, as that will allow you to make use of CouchDB's indexing > features, etc. If you just want to store the data, all three options will > work. > > == curl >=7.18 and RHEL/CentOS == > > About the curl >=7.18 dependency, I don't know why 7.18 exactly, but I'm sure > the dependency version hasn't been changed for no reason. People have built > CouchDB 0.11 on RHEL/CentOS 5, but yes, you'll need to install a separate > curl >=7.18 build. You could just install curl from source. Or you could > package curl >= 7.18 for installation in a location where it doesn't clash > with the OS curl package and build CouchDB to find curl >=7.18 there, or > maybe include curl >=7.18 in the CouchDB package itself and make it a > selfcontained package. It's not impossible, it's just more work than when > you're able to use the vendor's curl package. > > Nils. > ________________________________________ > Van: Himmelein, Ralf [[email protected]] > Verzonden: dinsdag 29 juni 2010 19:36 > Aan: [email protected] > Onderwerp: Problems inserting XML document into CouchDB 0.10.2 on CentOS 5.4 > > Hello CouchDB experts, > I am using CouchDB at the moment for a potential large scale implementation. > I am faced with the problem that I can't > insert a simple XML document into my CouchDB via the Futon interface. > The CouchDB is version 0.10.2 installed on CentOS. The error message that I > get on the UI is that the data I insert is not > a string. > > The document I try to insert looks like this: > > <note> > <to>Tove</to> > <from>Jani</from> > <heading>Reminder</heading> > <body>Don't forget me this weekend!</body> > </note> > > If I mask the the data with "" I can insert the data, but since I plan to > insert XML documents I can have "" everywhere. > At the moment this is a show stopper and I wonder if there is a special way > or procedure on how to store XML data within CouchDB. > > The second question I have is, why is CouchDB 0.11 depended on curl 7.18? > This fact makes building the new CouchDB version impossible > without breaking a lot of things within the CentOS (RHEL 5). Has anyone > eventually produced a how to for CentOS on how to build CouchDB 0.11 > for CentOS? > > Thanks in advance, > Ralf Himmelein > > De informatie vervat in deze e-mail en meegezonden bijlagen is uitsluitend > bedoeld voor gebruik door de geadresseerde en kan vertrouwelijke informatie > bevatten. Openbaarmaking, vermenigvuldiging, verspreiding en/of verstrekking > van deze informatie aan derden is voorbehouden aan geadresseerde. De VPRO > staat niet in voor de juiste en volledige overbrenging van de inhoud van een > verzonden e-mail, noch voor tijdige ontvangst daarvan. >
