如何使用一个data.xml文件存储数据和多个xsl样式表来查看站点中的数据?

时间:2011-05-22 15:25:38

标签: xml xslt

我只是在学习xml而且有点困惑。我突然意识到,为了用xml编写一个网站,我必须创建多个配对的xml和xsl文件,以便我可以链接到另一个页面... make since since?如何使用一个.xml文件存储我在多个xsl样式表中检索的数据?配对方法是唯一的方法吗?

突然发布消息......我发现要有多个样式表和一个xml文件你需要使用一些javascript !!!去搞清楚。下面是代码,您可以使用html文件调用此代码,该文件将在菜单中链接到该文件。确保删除关联的xml文件顶部的链接xsl样式表声明!并确保您使用的是服务器,以便发送适当的http请求。在预览硬盘驱动器上的文件时,它将无法在本地工作。

<html>
<head>
<script>
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("cdcatalog.xml");
xsl=loadXMLDoc("cdcatalog.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>

经过一些测试后,我了解到为了相应地渲染页面,您需要将脚本信息添加到html文件的头部。样式表显示正常,但脚本需要在输入数据之前运行,我认为它们都在同时运行,因此相互抵消。 ?有什么想法吗?

1 个答案:

答案 0 :(得分:1)

实际上只有三种方法。

  1. 正如您所知,在客户端上使用javascript来转换您从服务器收到的xml;下载xml。下载xsl。执行javascript以使用xsl转换xml。
  2. 在服务器上执行转换 - 创建一个执行上述步骤但在服务器上的处理程序。
  3. 动态更改服务器上xml文档中的样式表引用,并将其提供给客户端。