[tagsoup-friends] How to parse XML document with default namespace with JDOM XPath

Jack Bush <[email protected]>
Newsgroups gmane.comp.java.jdom.general
Message-ID <[email protected]>
Hi All,
 
I am having difficulty parsing using Saxon and TagSoup parser on a namespace html document. The relevant content of this document are as follows:
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional/ /EN" "http://www. w3.org/TR/ xhtml1/DTD/ xhtml1-transitio nal.dtd">
<html xmlns="http: //www.w3. org/1999/ xhtml">
<head>
<meta http-equiv=" Content-Type" content="text/ html; charset=UTF- 8" />
……..
</head>
<body>
    <div id="container">
        <div id="content">
            <table class="sresults">
                <tr>
                    <td>
                        <a href="http:/ /www.abc. com/areas" title=" Hollywood , CA "> hollywood </a>
                    </td>
                    <td>
                        <a href="http:/ /www.abc. com/areas" title=" San Jose , CA "> san jose </a>
                    </td>
                    <td>
                        <a href="http:/ /www.abc. com/areas" title=" San Francisco , CA "> san francisco </a>
                    </td>
                    <td>
                        <a href="http:/ /www.abc. com/areas" title=" San Diego , CA "> San diego </a>
                    </td>
              </tr>
……….
</body>
</html>
 
Below is the relevant code snippets illustrates how I have attempted to retrieve the contents (value of  <a>):
 
             import java.util.*;
             import org.jdom.*;
             import org.jdom.xpath. *;
             import org.saxpath. *;
             import org.ccil.cowan. tagsoup.Parser;
 
( 1 )       frInHtml = new FileReader(" C:\\Tmp\\ ABC.html" );
( 2 )       brInHtml = new BufferedReader( frInHtml) ;
( 3 ) //    SAXBuilder saxBuilder = new SAXBuilder(" org.apache. xerces.parsers. SAXParser" );
( 4 )       SAXBuilder saxBuilder = new SAXBuilder(" org.ccil. cowan.tagsoup. Parser");
( 5 )       org.jdom.Document jdomDocument = saxbuilder.build( brInHtml) ;
( 6 )       XPath xpath =  XPath.newInstance( "/ns:html/ ns:body/ns: div[@id=' container' ]/ns:div[ @id='content' ]/ns:table[ @class='sresults ']/ns:tr/ ns:td/ns: a");
( 7 )       xpath.addNamespace( "ns", "http://www. w3.org/1999/ xhtml");
( 8 )       java.util.List list = (java.util.List) (xpath.selectNodes( jdomDocument) );
( 9 )       Iterator iterator = list.iterator( );
( 10 )     while (iterator.hasNext( ))
( 11 )     {
( 12 )            Object object = iterator.next( );
( 13 ) //         if (object instanceof Element)
( 14 ) //               System.out.println( ((Element) object).getTextN ormalize( ));
( 15 )             if (object instanceof Content)
( 16 )                   System.out.println( ((Content) object).getValue ());
              }
….
 
This program would work on the same document without the default namespace, hence, it would not be necessary to include “ns” prefix along in the XPath statements (line 6-7) either. Moreover, I was using “org..apache. xerces.parsers. SAXParser” to have successfully retrieve content of <a> from the same document without default namespace in the past.
 
I would like to achieve the following objectives if possible:
 
( i ) Exclude DTD and namespace in order to simplifying the parsing process. How this could be done?
( ii ) If this is not possible, how to include it in XPath statements (line 6-7) so that the value of <a> is picked up correctly?
( iii ) Would changing from “org.apache.xerces. parsers.SAXParse r” to “org.ccil.cowan. tagsoup.Parser” make any difference as far as using XPath is concerned?
( iv ) Failing to exlude DTD, how to change the lookup of a PUBLIC DTD to a local SYSTEM one and include a local DTD for reference?
 
I am running JDK 1.6..0_06, Netbeans 6.1, JDOM 1.1, Saxon6-5-5, Tagsoup 1.2 on Windows XP platform.
 
Any assistance would be appreciated.
 
Thanks in advance,
 
Jack
________________________________
Search 1000's of available singles in your area at the new Yahoo!7 Dating. Get Started. __.._,_.___ 
Messages in this topic (1) Reply (via web post) | Start a new topic 
Messages | Files | Photos | Links | Database | Polls | Members | Calendar 
To unsubscribe, send a blank email to [email protected] 
 
Change settings via the Web (Yahoo! ID required) 
Change settings via email: Switch delivery to Daily Digest | Switch format to Traditional 
Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe 
Recent Activity
	*  2
New MembersVisit Your Group 
Give Back
Yahoo! for Good
Get inspired
by a good cause.
Y! Toolbar
Get it Free!
easy 1-click access
to your groups.
Yahoo! Groups
Start a group
in 3 easy steps.
Connect with others.
. 
__,_._,___ 


      Search 1000's of available singles in your area at the new Yahoo!7 Dating. Get Started http://au.dating.yahoo.com/?cid=53151&pid=1011

_______________________________________________
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.