Dear Andrea, Thanks for your help. I already solved it but I'm not satisfied with the solution. I had to get the results as String and clean them first.
Btw, I've tested your function, and I already had one very very similar, and I still have a DOM exception in this line with both: Element resElement = ((Document)((XMLResource)r).getContentAsDOM()).getDocumentElement(); The exception said DOM003: Wrong Document. So, I'll use my solution from now on, 'til I could correct that error or find a better one. Thanks again :-) ----- Original Message ----- From: "Andrea Broglia" <[EMAIL PROTECTED]> To: <[email protected]> Sent: Thursday, November 14, 2002 5:18 AM Subject: RE: how to get rid of the xml declaration on results? > Hi Josema, > I don't know if you're still struggling with the query results to strip > away the xml declaration and the added attributes, but this may help you: > > public Document combineXPathResults(String resultRootElement, > ResourceSet result) > throws XMLDBException > { > // Create a new Document and a root element that will have as children > // all the results > Document resultDoc = new DocumentImpl(); > Element root = resultDoc.createElement(resultRootElement); > resultDoc.appendChild(root); > > // Iterate the xpath results and add each of them to the main Document > ResourceIterator iterator = result.getIterator(); > while(iterator.hasMoreResources()) { > Resource r = iterator.nextResource(); > > Element resElement = ((Document) > ((XMLResource)r).getContentAsDOM()).getDocumentElement(); > > // Remove unwanted attributes > resElement.removeAttribute("src:col"); > resElement.removeAttribute("src:key"); > resElement.removeAttribute("xmlns:src"); > > // Add this result to the root element > Element importedElement = (Element)resultDoc.importNode(resElement, > true); > root.appendChild(importedElement); > } > > return resultDoc; > } > > Once you have the "global" result Document object you can serialize it > (using the XMSerialize class), or apply an xslt to it (using Xalan), or > anything you need to. > > Cheers, > Andrea > > > > -----Original Message----- > > From: Josema Alonso [mailto:[EMAIL PROTECTED] > > Sent: Thursday, 14 November 2002 3:02 AM > > To: [email protected] > > Subject: Re: how to get rid of the xml declaration on results? > > > > > > Hey, > > > > Remember the weird characters? The function below, which is really stupid, > > makes the parse work, just by rewriting the characters from the XML string > > with the same ones. So, I'm now sure it is an encoding issue, and I do not > > know how to fix other way. Any ideas on how to retrieve the > > resources in the > > right encoding? > > > > Thanks. > > > > ------------- > > /** > > * Removes those nasty characters from the resource > > * > > */ > > private String removeNasty(String data) throws > > UnsupportedEncodingException > > { > > char oldChar = new String("\n").charAt(0); > > char newChar = new String("\n").charAt(0); > > data = data.replace(oldChar, newChar); > > > > newChar = new String("\t").charAt(0); > > oldChar = new String("\t").charAt(0); > > data = data.replace(oldChar, newChar); > > > > return data; > > } >
