XMLファイルの一部をHTMLテーブルの単一の行に変換するためにJavascriptを使用しようとしています。私は、複数のXMLファイルからテーブル内に複数の行を作成することを考えています。 FirefoxとOperaの場合、この素敵な小さなコードが美しく機能します。IEでフラグメントを処理するXSL
var resTable = document.createElement('table');
for (i = 0; i < xmlNames.length; i++)
{
// code for IE
if (window.ActiveXObject)
{
}
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation && document.implementation.createDocument)
{
xml=loadXMLDoc(xmlNames[i]);
xsl=loadXMLDoc(xslName);
xsltProcessor=new XSLTProcessor();
xsltProcessor.importStylesheet(xsl);
resultDocument = xsltProcessor.transformToFragment(xml,document);
resTable.appendChild(resultDocument);
}
}
document.getElementById("theDoc").appendChild(resTable);
問題は、私は、「IEの場合」の部分には千の事をしようとしたということで、何も今までに機能しません。私は尋ねる前に、たくさんのグーグルをしてブラウジングしてきましたが、役に立たないのです。実際、非常に似ているようなSOには未回答の質問がありますが、回答も解決もないので、誰かが私をここで助けてくれることを期待していました..
私はIE上で変換する文書全体が、フラグメントとしてこれをやりたいという事実は、私の問題を引き起こすものです。どんな助けでも大いに感謝されるでしょう!ありがとう!
編集:申し訳ありません重要な場合は、loadXMLDoc関数を提供するのを忘れていました。ここです:
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;
}
ActiveXフィルタリングが有効になっていても 'true'と評価される' window.ActiveXObject'でIEを検出しようとすべきではありません。後でActiveXオブジェクトを作成しようとすると失敗します。 – Joey
よろしくお願いします。 – daroo
http://blogs.msdn.com/b/ie/archive/2011/05/02/activex-filtering-for-developers.aspx - あなたは既にXHRに対して正しいことをしています。 – Joey