package tree;
import java.io.File;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.*;
import org.xml.sax.SAXException;
public class MyReadXml {
String outHTML = "";
public String readXML(String str){
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
try{
DocumentBuilder db = dbf.newDocumentBuilder();
File file = new File(str);
Document doc = db.parse(file);
Element root = doc.getDocumentElement();
travsal(root,-1);
}catch(ParserConfigurationException e){
e.printStackTrace();
}catch(SAXException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
return outHTML;
}
public void travsal(Element root1,int spacenum){
String spaceHTML = "";
String backspaceHTML = "";
if(spacenum == -1){
spaceHTML = "";
}else{
spaceHTML=" ";
}
for(int i=0;i<spacenum;i++){
backspaceHTML += "<img src="+"\"treeimages/L4.gif\""+ " align="+"\""+"absmiddle"+"\""+"/>";
}
int len =root1.getChildNodes().getLength();
String id = root1.getAttribute("id");
outHTML += "<div id=" + id +">\n";
outHTML += spaceHTML;
if(spacenum>=1){
int superLen = root1.getParentNode().getParentNode().getChildNodes().getLength();
Node superRoot = root1.getParentNode().getParentNode().getChildNodes().item(superLen-2);
if(superRoot.getNodeName().compareTo("a")==0){
Element superRoot1=(Element)superRoot;
if(superRoot1!=null){
if(superRoot1.getTagName().compareTo("a")==0){
if(root1.getParentNode()== superRoot){
outHTML += " ";
}else{
outHTML +=backspaceHTML;
} }
}
}
}
//if(root1.getParentNode() == doc.getDocumentElement().getChildNodes().item(doc.getDocumentElement().getChildNodes().getLength()-1)){
//outHTML = outHTML + "";
//}else{
//outHTML = outHTML + spaceHTML;
//}
/*if(root1.getParentNode().getNodeName()!=null){
if(root1.equals(root1.getParentNode().getChildNodes().item(root1.getParentNode().getChildNodes().getLength()-1))){
outHTML +="";
}else{
outHTML += spaceHTML;
}
}else{
outHTML = "";
}*/
if(len<1){
outHTML += "<img src="+"\"treeimages/L2.gif\""+" onclick="+"\"deployorconceal("+id+")\""+ " align="+"\""+"absmiddle"+"\""+"/>\n";
}else{
if(spacenum == -1){
outHTML += "["+"<img src="+"\"treeimages/MINUS.BMP\""+" onclick="+"\"deployorconceal("+id+")\""+ " align="+"\""+"absmiddle"+"\""+"/>"+"]\n";
}else{
outHTML += "<img src="+"\"treeimages/M2.gif\""+" onclick="+"\"deployorconceal("+id+")\""+ " align="+"\""+"absmiddle"+"\""+"/>\n";
}
}
outHTML += "<input name="+"\"chkbox\""+" onclick="+"\"inselected("+id+"),concelchk(event)\""+" type="+"\"checkbox\""+">\n";
String name = root1.getAttribute("value");
outHTML += name;
int nextspacenum=spacenum+1;
for(int i=0;i<len;i++){
Node el1=root1.getChildNodes().item(i);
if(el1.getNodeName().compareTo("a")==0){
Element elem=(Element)el1;
if(elem!=null){
if(elem.getTagName().compareTo("a")==0){
travsal(elem,nextspacenum);
}
}
}
}
//
outHTML += "</div>";
}
/* public String getHTML(){
String strHTML = readXML("treexml.xml");
return strHTML;
}*/
public static void main(String []args){
MyReadXml html = new MyReadXml();
String t = html.readXML("treexml.xml");
System.out.println(t);
}
}