Re: malformed URL exception exception in saxbuilder.build due to unreachable URL
cliff palmer <[email protected]>
| Newsgroups | gmane.comp.java.jdom.general |
|---|---|
| Message-ID | <CABhr9St5uUTLch-LMctkqUPQF7RLDkkEaba4FJMwV-XmQPWULg@mail.gmail.com> |
Rolf, that worked - it's mysterious that the version in my code (passing the string) worked until there was a URL, but I can live with mysteries in light of working code :). Thanks! Cliff On Thu, Feb 9, 2012 at 6:44 PM, Rolf Lear <[email protected]> wrote: > Hi Cliff. > > I think the problem is that the content of the column 'xml_contents' of the > table 'xml_table' is actual XML data.... not a file name/URI. > > > I think what you want to do is: > > String xmlcontent = rs.getString(2); > StringReader reader = new StringReader(xmlcontent); > xmlDoc = saxBuilder.build(reader); > > See http://jdom.org/docs/faq.html#a0210 > > Rolf > > On 09/02/2012 6:26 PM, cliff palmer wrote: >> >> code below: > > ..... > >> rs = null; >> try { >> String xmlQuery = "select xml_id, xml_contents from >> xml_table"; >> rs = stmt.executeQuery(xmlQuery); >> } catch (SQLException e) { >> logLogger.debug("Exception executing query"); >> e.printStackTrace(); >> } >> saxBuilder = new SAXBuilder(); >> xmlFmt = Format.getPrettyFormat().setEncoding("UTF-8"); >> xmlOutputter = new XMLOutputter(xmlFmt); >> structureString = new ArrayList<String>(); >> tagMap = new HashMap<String, Integer>(); > > ... > >> while(rs.next()) { >> xmlDoc = null; >> rowsRead ++; >> msgID = rs.getString(1); >> try { >> xmlDoc = saxBuilder.build(rs.getString(2)); >> } catch (JDOMException e) { >> e.printStackTrace(); >> } catch (IOException e) { >> goodXML = false; >> e.printStackTrace(); >> } >> try { >> rootElement = xmlDoc.getRootElement(); >> doProcess(rootElement); >> } catch (Exception e) { >> e.printStackTrace(); >> } >> } > > > > > >> >> On 2/9/12, cliff palmer<[email protected]> wrote: >>> >>> Hi Rolf >>> I will post the code later, (sorry late for a meeting) but to answer >>> your questions: >>> - this error occurs when there is an "xmlns" declaration. Since this >>> is the first instance of an "xmlns" declaration I've encountered with >>> JDOM and all of the URLs in the "xmlns" declaration that I have found >>> point to the same bad address, I don't know if the problem is related >>> to lookup of the URL or just the presence of an "xmlns" declaration. >>> - the problem is predictable and occurs for each xml document that >>> uses this bad URL in an "xmlns" declaration. >>> - I've used the code (I will post it, I promise) to parse over 3 >>> million xml documents, passing a string containing the xml document >>> (not a URL). The value I pass to saxbuilder.build is the returned >>> string from the JDBC call ResultSet.getString using a column number >>> parameter. I haven't been altering or converting the string returned >>> from JDBC. >>> >>> Thanks Rolf and I will post the code as soon as the suits are done with >>> me. >>> >>> Cliff >>> >>> On Thu, Feb 9, 2012 at 5:40 PM, Rolf Lear<[email protected]> wrote: >>>> >>>> Hi Cliff. >>>> >>>> I think there's been some good pointers already, but just to make things >>>> crystal clear... can you perhaps post the relevant code snippet you are >>>> using to parse the document, and perhaps the first few lines of the >>>> actual >>>> XML too. >>>> >>>> Also, does this problem happen with *all* xml documents (the first one), >>>> or >>>> with just some of them? >>>> >>>> My guess is that Oliver has the right idea with parsing the wrong >>>> string.... >>>> remember that the SaxBuilder.build(String) method expects the String to >>>> be >>>> a >>>> URL, not the actual XML content..... YTour stack trace indicates you are >>>> calling this method... >>>> >>>> See the code here: >>>> >>>> https://github.com/hunterhacker/jdom/blob/jdom-1.x/core/src/java/org/jdom/input/SAXBuilder.java#L986 >>>> >>>> Anyway, seeing your code would help.... >>>> >>>> Rolf >>>> >>>> >>>> On 09/02/2012 3:54 PM, cliff palmer wrote: >>>>> >>>>> I'm reading through several hundred thousand existing XML documents >>>>> building counts of XML tags and have encountered a >>>>> Java.net.MalformedURL Exception raised by saxBuilder.build because the >>>>> xmlns points to a URL that can not be reached. >>>>> I am using JDOM 1.1.2. >>>>> Is there a call or parameter setting that will cause saxBuilder to >>>>> ignore namespaces when parsing? >>>>> Thanks! >>>>> Cliff >>>>> _______________________________________________ >>>>> To control your jdom-interest membership: >>>>> http://www.jdom.org/mailman/options/jdom-interest/[email protected] >>>>> > _______________________________________________ To control your jdom-interest membership: http://www.jdom.org/mailman/options/jdom-interest/[email protected]