Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 如何在网页上执行和显示xslt结果?_Html_Xslt - Fatal编程技术网

Html 如何在网页上执行和显示xslt结果?

Html 如何在网页上执行和显示xslt结果?,html,xslt,Html,Xslt,我有以下三个文件,它应该做的是获取xml和xsl文件,并根据它们进行处理,然后在浏览器中显示结果。但现在的问题是,当我双击chrome和IE7的html时,我得到的都是空白页面。有谁能告诉我为什么会这样,执行xslt文件并在网页上显示结果的正确方法是什么?非常感谢 student.xml file <?xml version="1.0" encoding="ISO-8859-1"?> <data> <student> <name>Bitu

我有以下三个文件,它应该做的是获取xml和xsl文件,并根据它们进行处理,然后在浏览器中显示结果。但现在的问题是,当我双击chrome和IE7的html时,我得到的都是空白页面。有谁能告诉我为什么会这样,执行xslt文件并在网页上显示结果的正确方法是什么?非常感谢

student.xml file

<?xml version="1.0" encoding="ISO-8859-1"?>

<data>
 <student>
  <name>Bitu Kumar</name>
  <course>MCA</course>
  <sem>6</sem>
  <marks>80</marks>
 </student>
 <student>
  <name>Santosh Kumar</name>
  <course>MCA</course>
  <sem>5</sem>
  <marks>70</marks>
 </student>
 <student>
  <name>Ashish</name>
  <course>M.Sc.</course>
  <sem>4</sem>
  <marks>80</marks>
 </student>
 <student>
  <name>Mahesh</name>
  <course>MA</course>
  <sem>3</sem>
  <marks>80</marks>
 </student>
</data>

and following student.xsl file

<?xml version="1.0" encoding="ISO-8859-1"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
 <html>
    <body>
     <h2>Student DataBase</h2>
    <table border="1">
          <tr>
             <th  bgcolor="yellow">Name</th>    
      <xsl:for-each select="data/student">
                        <td width="200"><xsl:value-of select="name"/></td>
             </xsl:for-each>
           </tr>
          <tr>
             <th  bgcolor="yellow">Course</th>    
      <xsl:for-each select="data/student">
                        <td width="200"><xsl:value-of select="course"/></td>
      </xsl:for-each>
          </tr>
           <tr>
             <th  bgcolor="yellow">Marks</th>    
      <xsl:for-each select="data/student">
                        <td width="200"><xsl:value-of select="marks"/></td>
      </xsl:for-each>
           </tr> 
           <tr>
             <th  bgcolor="yellow">Semester</th>    
      <xsl:for-each select="data/student">
                        <td width="200"><xsl:value-of select="sem"/></td>
      </xsl:for-each>
           </tr>
       </table>
     </body>
   </html>
</xsl:template>
</xsl:stylesheet>

and following student.html file

<html>
 <head>
 <title> Testing IE </title>
 <script langauge="JavaScript" type="text/javascript">
  function loadXMLDoc(dname)
  {
   if (window.XMLHttpRequest)
     {
      xhttp=new XMLHttpRequest();
     }
   else
     {
      xhttp=new ActiveXObject("Microsoft.XMLHTTP");
     }
   xhttp.open("GET",dname,false);
   xhttp.send("");
   return xhttp.responseXML;
  }

  function displayResult()
  {
   xml=loadXMLDoc("student.xml");
   xsl=loadXMLDoc("student.xsl");
   // code for IE
   if (window.ActiveXObject)
     {
      ex=xml.transformNode(xsl);
      document.getElementById("example").innerHTML=ex;
     }

   // code for Mozilla, Firefox, Opera, etc.
   else if (document.implementation && document.implementation.createDocument)
     {
      xsltProcessor=new XSLTProcessor();
      xsltProcessor.importStylesheet(xsl);
      resultDocument = xsltProcessor.transformToFragment(xml,document);
      document.getElementById("example").appendChild(resultDocument);
     }
  }
 </script>
 </head>

 <body onLoad="displayResult()">
  <div id="example" />
 </body>
</html>
student.xml文件
比图库马尔
马华
6.
80
桑托什·库马尔
马华
5.
70
阿施施
理学硕士。
4.
80
马赫什
文科硕士
3.
80
以及下面的student.xsl文件
学生数据库
名称
课程
标志
学期
以及下面的student.html文件
测试IE
函数loadXMLDoc(dname)
{
if(window.XMLHttpRequest)
{
xhttp=newXMLHttpRequest();
}
其他的
{
xhttp=新的ActiveXObject(“Microsoft.XMLHTTP”);
}
xhttp.open(“GET”、dname、false);
xhttp.send(“”);
返回xhttp.responseXML;
}
函数displayResult()
{
xml=loadXMLDoc(“student.xml”);
xsl=loadXMLDoc(“student.xsl”);
//IE代码
if(window.ActiveXObject)
{
ex=xml.transformNode(xsl);
document.getElementById(“示例”).innerHTML=ex;
}
//Mozilla、Firefox、Opera等的代码。
else if(document.implementation&&document.implementation.createDocument)
{
xsltProcessor=新的xsltProcessor();
导入样式表(xsl);
resultDocument=xsltProcessor.transformToFragment(xml,文档);
document.getElementById(“示例”).appendChild(resultDocument);
}
}

实际上,最简单的方法就是在XML文档中放入样式表指令,然后简单地打开XML文档

只需按如下方式启动XML文档:

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="student.xsl"?>
<data>
 <student>
 etc..

您甚至不需要student.html文件。

@Flynn1179,我想OP希望使用html来实现这一点:

@原创海报 我不会在这里粘贴代码,我会让你看一篇博客文章,我相信这篇文章完全涵盖了你要找的内容:

注意:如果您运行示例,请直接使用浏览器进行操作,因为我发现从类似WebStrom的IDE启动test.html文件会导致在单击链接时出现注释。这可能是导致你每次都得到一张空白页的原因

如果这回答了你的问题(或者是最接近答案的),请将其标记为所选答案,以便将此帖子列为已解决

如果您不清楚如何调整博客文章中HTML文件中的代码以创建问题的解决方案,请在此处发表评论,我将为您创建个性化的调整