try this kind of code:<html>
<head>
<title>XML Data Island in Mozilla :: Example 1</title>
<meta name="generator" content="BBEdit 6.1.1">
<script language="JavaScript">
function loadFields()
{
var xmlNode = window.document.getElementsByTagName('xml');
var borrowerNode = xmlNode[0].childNodes[1];
if(borrowerNode.hasChildNodes())
{
var i = 0;
var xmlChildNode, nodeVal='';
while(borrowerNode.childNodes[i])
{
// get node
xmlChildNode = borrowerNode.childNodes[i];
// check nodetype
if(xmlChildNode.nodeType != 3) // #text == 3
{
// get nodeValue (aka text)
nodeVal += xmlChildNode.firstChild.nodeValue + ' ';
}
i++;
}
// set control value to nodeValue
window.document.getElementById('txtBorrowerName').value = nodeVal;
}
}
</script>
</head>
<body onload="loadFields();"><xml id="xmlDataIsland" style="height:0px; width:0px; visibility:hidden;">
<borrower id="1">
<firstname>Brian</firstname>
<middlename>Ellis</middlename>
<lastname>Johnson</lastname>
</borrower>
</xml><input type="text" id="txtBorrowerName">
</body>
</html>

解决方案 »

  1.   

    <html>
    <head>
    <title>Table Sample</title><style type="text/css">
    xml {display: none;}
    </style><script>
    function findTable(id)
    {
      id = "#" + id;
      var tables = document.getElementsByTagName("table");
      var i;
      for (i=0; i < tables.length; i++) {
        var table = tables[i];
        if (table.getAttribute("datasrc") == id)
          return table;
      }
      return null;
    }function getDataFieldNames(table)
    {
      var array = new Array();
      var divs = table.getElementsByTagName("div");
      var i;
      for (i=0; i < divs.length; i++) {
        var div = divs[i];
        var datafld = div.getAttribute("datafld");
        if (datafld != null && datafld != "") {
          array[i] = datafld;
        }
      }  if (array.length < 1) {
        return null;
      }  return array;
    }function getSrcFieldValues(xml, fieldNames)
    {
      var srcs = new Array();
      var i;
      for (i=0; i < fieldNames.length; i++) {
        var field = fieldNames[i];
        srcs[field] = xml.getElementsByTagName(field);
      }  return srcs;
    }function fillTable(table, srcs)
    {
      var trtemplate = table.firstChild.removeChild(table.firstChild.firstChild);
      var tdtemplate = trtemplate.removeChild(trtemplate.firstChild);  while (trtemplate.firstChild) {
        trtemplate.removeChild(trtemplate.firstChild);
      }  table = table.firstChild; // tbody, really  var cols = 0;
      for (field in srcs) {
        srcs[cols++] = field;
      }    var row;
      for (row = 0; row < srcs[srcs[0]].length; row++) {
        var tr = trtemplate.cloneNode(true);
        var col;
        for (col=0; col < cols; col++ ) {
          var td = tdtemplate.cloneNode(true);
          var div = td.firstChild;     
          div.setAttribute("datafld", srcs[col]);
          var textNode = document.createTextNode(srcs[srcs[col]][row].firstChild.nodeValue);
          div.appendChild(textNode);
          tr.appendChild(td);
        }
        table.appendChild(tr);
      }
    }
    function loadTableData()
    {
      if (!document.all) {
        var i;
        var xmlNodes = document.getElementsByTagName("xml");
        for (i=0; i< xmlNodes.length; i++) {
          var xml = xmlNodes[i];
          var id = xml.getAttribute("id");
          var table = findTable(id);
          var fields = getDataFieldNames(table);
          var srcs = getSrcFieldValues(xml, fields);
          fillTable(table, srcs);
        }
      }
    }
    </script></head><body onload="loadTableData();"><xml id="xmlNames">
    <names>
    <name>
    <first>Heikki</first>
    <mi>J</mi>
    <last>Toivonen</last>
    </name>
    <name>
    <first>Thad</first>
    <mi>?</mi>
    <last>Hoffman</last>
    </name>
    </names>
    </xml><xml id="xmlMovies">
    <movies>
    <movie>
    <moviename>The Matrix</moviename>
    </movie>
    <movie>
    <moviename>The Lord of the Rings: The Two Towers</moviename>
    </movie>
    </movies>
    </xml><h1>Table Samples</h1><p>This sample shows how to mimic XML Data Islands in Mozilla with tables. This sample
    code is not meant for production use as it is very fragile as it stands here (very
    primitive browser capability test, requires certain template table layout and so on).</p><h2>Names</h2><table datasrc="#xmlNames" border="1"><tr><td><div datafld="first"></div></td><td><div datafld="mi"></div></td><td><div datafld="last"></div></td></tr></table><h2>Movies</h2><table datasrc="#xmlMovies" border="1"><tr><td><div datafld="moviename"></div></td></tr></table></body>
    </html>
      

  2.   

    楼上的两位高手:我要的是用js实现在一个html文件中引用另一个xml文件的数据
      

  3.   

    在ns下真的没有办法在html导入外部xml文件中的数据吗?