<HTML><FONT FACE=arial,helvetica><FONT  SIZE=2 FAMILY="SANSSERIF" FACE="Arial" LANG="0">Hi all,<BR>
<BR>
&nbsp;&nbsp; I'm new to xml and jdom.&nbsp; I wrote a simple program that reads a simple xml file.&nbsp; The java file compiles ok, but when I run it, it gives me the following error, following by the java source.&nbsp; Please help.&nbsp; Thanks.<BR>
<BR>
D:\sjsu\cs296&gt;java WeblogsJDOM weblog.xml<BR>
org.jdom.JDOMException: Error in building: msdn.microsoft.com<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.jdom.input.SAXBuilder.build(SAXBuilder.java:373)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.jdom.input.SAXBuilder.build(SAXBuilder.java:772)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at WeblogsJDOM.listChannels(WeblogsJDOM.java:25)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at WeblogsJDOM.main(WeblogsJDOM.java:62)<BR>
Caused by: java.net.UnknownHostException: msdn.microsoft.com<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.net.InetAddress.getAllByName0(InetAddress.java:571)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.net.InetAddress.getAllByName0(InetAddress.java:540)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.net.InetAddress.getByName(InetAddress.java:449)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.net.Socket.&lt;init&gt;(Socket.java:100)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at sun.net.NetworkClient.doConnect(NetworkClient.java:50)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at sun.net.www.http.HttpClient.openServer(HttpClient.java:331)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at sun.net.www.http.HttpClient.openServer(HttpClient.java:517)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at sun.net.www.http.HttpClient.&lt;init&gt;(HttpClient.java:267)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at sun.net.www.http.HttpClient.&lt;init&gt;(HttpClient.java:277)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at sun.net.www.http.HttpClient.New(HttpClient.java:289)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection<BR>
.java:408)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLCon<BR>
nection.java:501)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.net.URL.openStream(URL.java:798)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.xerces.readers.DefaultReaderFactory.createReader(DefaultRe<BR>
aderFactory.java:149)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.xerces.readers.DefaultEntityHandler.startReadingFromExtern<BR>
alEntity(DefaultEntityHandler.java:772)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.xerces.readers.DefaultEntityHandler.startReadingFromExtern<BR>
alSubset(DefaultEntityHandler.java:571)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.xerces.framework.XMLDTDScanner.scanDoctypeDecl(XMLDTDScann<BR>
er.java:1139)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.xerces.framework.XMLDocumentScanner.scanDoctypeDecl(XMLDoc<BR>
umentScanner.java:2145)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.xerces.framework.XMLDocumentScanner.access$0(XMLDocumentSc<BR>
anner.java:2100)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.xerces.framework.XMLDocumentScanner$PrologDispatcher.dispa<BR>
tch(XMLDocumentScanner.java:831)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentS<BR>
canner.java:381)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1098)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.jdom.input.SAXBuilder.build(SAXBuilder.java:354)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.jdom.input.SAXBuilder.build(SAXBuilder.java:772)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at WeblogsJDOM.listChannels(WeblogsJDOM.java:25)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at WeblogsJDOM.main(WeblogsJDOM.java:62)<BR>
<BR>
<BR>
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++<BR>
<BR>
import org.jdom.*;<BR>
import org.jdom.input.SAXBuilder;<BR>
import java.util.*;<BR>
import java.net.*;<BR>
<BR>
public class WeblogsJDOM<BR>
{<BR>
&nbsp;&nbsp; public static String DEFAULT_SYSTEM_ID = "d:\\sjsu\\cs296\\weblog.txt";<BR>
&nbsp;&nbsp; <BR>
&nbsp;&nbsp; public static List listChannels() throws JDOMException<BR>
&nbsp;&nbsp; {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return listChannels(DEFAULT_SYSTEM_ID);<BR>
&nbsp;&nbsp; }<BR>
&nbsp;&nbsp; <BR>
&nbsp;&nbsp; public static List listChannels(String systemID) throws JDOMException, NullPointerException<BR>
&nbsp;&nbsp; {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(systemID == null)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw new NullPointerException("URL must be non-null");<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SAXBuilder builder = new SAXBuilder();<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Load the entire document into memory<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //from the network or file system<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Document doc = builder.build(systemID);<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Descend the tree and find the URLs.&nbsp; It helps that<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //the document has a very regular structure.<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Element weblogs = doc.getRootElement();<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; List logs = weblogs.getChildren("log");<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Vector urls = new Vector(logs.size());<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Iterator iterator = logs.iterator();<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while(iterator.hasNext())<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Object o = iterator.next();<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Element log = (Element) o;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //This will probably be changed to getElement() or getChildElement()<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Element url = log.getChild("url");<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(url == null)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; continue;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String content = url.getTextTrim();<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; URL u = new URL(content);<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; urls.addElement(u);<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch(MalformedURLException e)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //bad input data from on third party; just ignore it<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return urls;<BR>
&nbsp;&nbsp; }<BR>
&nbsp;&nbsp; <BR>
&nbsp;&nbsp; public static void main(String[] args)<BR>
&nbsp;&nbsp; {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; List urls;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(args.length &gt; 0)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; urls = listChannels(args[0]);<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; urls = listChannels();<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Iterator iterator = urls.iterator();<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while(iterator.hasNext())<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(iterator.next());<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch(Exception e)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace();<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>
&nbsp;&nbsp; }<BR>
}</FONT></HTML>