簡體   English   中英

XSLT適用於Opera,Safari和Chrome,但不適用於Firefox 13和Internet Explorer 9

[英]XSLT works with Opera, Safari and Chrome but not with Firefox 13 and Internet Explorer 9

我在使用Internet Explorer 9和Firefox 13時遇到了一些問題。我正在使用HTML,XSL和XML構建Web界面,它可以在Chrome,Opera和Safari上正常運行,而無需進行任何更改,但是在Firefox 13和Internet Explorer9。使用Firefox,有些頁面(不是全部)無法加載XML值,在Internet Explorer中,我無法為使用XSLT的html頁面加載css,但是我可以正確加載所有參數。

在上方,您可以找到一個無效頁面的示例(HTML,XML,XSL)

的HTML

<html>
<head>
<script>
function loadXMLDoc(dname)
{
if (window.XMLHttpRequest)
  {
  xhttp=new XMLHttpRequest();
  }
else
  {
  xhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xhttp.open("GET",dname+"?id="+Math.random(),false);
xhttp.send("");
return xhttp.responseXML;
}

function displayResult()
{
xml=loadXMLDoc("sensorParameters.xml");
xsl=loadXMLDoc("sensorParameters.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>
<head>
<meta http-equiv="cache-control" content="no-cache">
</head>
</html>

XSL

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<html>
    <head>
          <title>Interface</title>
          <link rel="stylesheet" type="text/css" href="style.css" />
    </head>
    <body>
    ...
    (It continues, but it is not important...)
    </body>
</html>
</xsl:template>
</xsl:stylesheet>

XML格式

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="sensorParameters.xsl"?>
<section1>
<section2>
          ......... some data
</section2>
<section3>
          ......... some data
</section3>
          .........
</section1>

任何幫助將不勝感激。

馬可

至於IE問題,我認為問題的可能原因是您使用XSLT創建帶有html根元素的完整HTML文檔的方法, head部分帶有樣式表的link ,然后嘗試將XSLT結果包括到div元素(然后IE可能會忽略link )。 要解決此問題,您需要更改方法,並確保將XSLT轉換結果插入到HTML文檔的head ,並添加XSLT創建的link元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM