Files and Directories in Java | XML Output
|Working with files and directories in Java|
|The MyDir class|
|A directory structure for testing|
|Now for some HTML output|
|Showing XML in Internet Explorer|
Showing XML in Internet Explorer
If you show this jsp-file in an XML-aware browser like Microsoft Internet Explorer 5.5 you'll get this picture:
- Figure 3 -
If you click on the "-" characters in front of the tags you'll make them collapse--and clicking on the "+" characters will expand them again.
… and finally: transformed XML
To complete the circle we can apply an XSLT stylesheet to the XML file:
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="style2.xsl"?>
<jsp:useBean id= "fileXML" class="hansen.playground2.MyFileStructureXML" scope="session" />><% fileXML.setDirname("c:\\Dir-A"); fileXML.build(); fileXML.list(); out.println(fileXML.getResult()); %>
(See the stylesheet style2.xsl here). Again you'll need Internet Explorer 5.5+ to get a result, and what you get is . . . . figure 2 again! The circle is closed.
If your servlet engine doesn't accept the "xml declaration" <?xml version="1.0"?> or the "xml processing instruction" <?xml-stylesheet type="text/xsl" href="style2.xsl"?> you could output them using out.println to the response from your jsp-page. You might also consider upgrading to a newer servlet engine like Tomcat v.4 (http://java.sun.com/products/jsp/tomcat), which I have used for all the examples in this article.
In this article I have shown you the basic Java techniques for reading the contents of a file directory. With the information available in memory as a tree structure it's simple to walk through the tree and show the contents in various formats: simple text lines, HTML, XML and transformed XML.
All the files and programs shown or mentioned in the article can be found in this zip-file.
In a follow-up to this article I'll finish the topic by making yet another subclass to MyFileStructure that will produce a nice graphical view of the tree structure -- like the one in figure 1. Stay in touch!