home *** CD-ROM | disk | FTP | other *** search
/ Delphi Anthology / aDELPHI.iso / Runimage / Delphi50 / Source / Webmidas / xmlshow.js < prev   
Text File  |  1999-08-11  |  3KB  |  97 lines

  1. var xmlshow_vers="1.0";
  2.  
  3. function ShowXML(doc)
  4. {
  5.    var w = window.open("","","resizable,scrollbars,width=800,height=600");
  6.    w.title = "XML Datapacket";
  7.    w.document.open();
  8.    w.document.write("<STYLE>");
  9.    w.document.write("  .xml        {font-size:12pt}"); 
  10.    w.document.write("  .tagName        {font-size:13pt; color:red;font-weight:bold;}");
  11.    w.document.write("  .attrName    {color:black; font-weight:bold; }");
  12.    w.document.write("  .attrValue    {color:darkgreen; font-weight:bold; }");
  13.    w.document.write("  .text    {color:blue; font-weight:bold; }");
  14.    w.document.write("  .comment    {color:green; font-weight:bold; }");
  15.    w.document.write("</STYLE>");
  16.    var xml = DumpTree(doc,0);
  17.    w.document.write(xml);
  18.    w.document.close();
  19. }
  20.  
  21. function DumpTree(node,i)
  22. {
  23.   var result = "<DL class=xml><DD>";
  24.   if (node.nodeType == 8)//Comment 
  25.   {
  26.      result += "<span class=comment><!--" + node.nodeValue + "--></span>";
  27.      result += "</DD></DL>"
  28.      return result;
  29.   }
  30.   var childCnt= node.childNodes.length;
  31.   var empty = "";
  32.   var tagname = node.tagName;
  33.   if (childCnt == 0) empty = "/";
  34.   result += "<span class=tagName><" + tagname + "</span>";
  35.  
  36. //This part is specific for xmldom.js
  37.   if (node.attributes!=null)// && node.attributes.length)
  38.   {
  39. if (node.ownerDocument.borland!=null)
  40. {
  41.  
  42.  node.getAttribute("x");//to force it to be parsed
  43.  var attrs=node.attributes;
  44.  var a;
  45.  for (var a in attrs)
  46.  {
  47.    var v=attrs[a];
  48.    if (v!=null)
  49.    {
  50.     result += " <span class=attrName>" + a + "</span>=<span class=attrValue>\"";
  51.     result +=  FrText(v);
  52.     result += "\"</span>\n";
  53.    }
  54.  }
  55. }
  56. else
  57. {
  58.   var k;
  59.  
  60.   for (k=0; k < node.attributes.length; k++ )
  61.   {
  62.     var a = node.attributes.item(k);
  63.     result += " <span class=attrName>" + a.name + "</span>=<span class=attrValue>\"";
  64.     result +=  a.value;
  65.     result += "\"</span>\n";
  66.     //if (node.attributes.length >1)
  67.     //   result += "\n";
  68.   }
  69.  // if (k) result +="\n";
  70. }
  71. }
  72.   result += "<span class=tagName>" + empty + "></span>";
  73.   if (childCnt > 0)
  74.   {
  75.     if (childCnt == 1 && node.childNodes.item(0).nodeType == 3)
  76.     {
  77.        result += "<span class=text>";
  78.        result += FrText(node.childNodes.item(0).data);
  79.        result += "</span>"
  80.     }
  81.     else
  82.     {
  83.       var j;
  84.       for (j = 0; j < childCnt; j++)
  85.       {
  86.          result += "\n";
  87.          var child = node.childNodes.item(j);
  88.          result += DumpTree(child,1);
  89.       }
  90.     }
  91.     //EndTag
  92.     result +=  "<span class=tagName></" + tagname + "></span>\n";
  93.   }
  94.   result += "</DD></DL>"
  95.   return result;
  96. }
  97.