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]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.