1

firefox (17.01) を利用して、アップロードされた .csv ファイルから xml コードを生成しています。このコードは後で xhtml に変換されますが、その前に有効な xml ファイルを作成する必要があります。

私のコード全体は

var parser = new DOMParser();
var xml_doc = parser.parseFromString(xml_code,'text/xml');
var xslhttp = new XMLHttpRequest();
xslhttp.open("GET",xsl_code,false);
xslhttp.send();
var xsl_doc = xslhttp.responseXML;

var xsltProcessor = new XSLTProcessor();
xsltProcessor.importStylesheet(xsl_doc);
var xhtml_code = xsltProcessor.transformToFragment(xml_doc,document);

大きなファイルを扱う場合を除いて、正常に動作します。特に、xsl_code が 112.039.355 (xml_code.length) と同じ大きさの場合、スクリプトは失敗します。

エラーメッセージは

NS_ERROR_XPC_BAD_CONVERT_JS: Could not convert JavaScript argument arg 0 [nsIDOMParser.parseFromString]

それについての説明はありますか?Firefox に制限はありますか? ファイルからコンテンツを削除すると、最終的に xml_doc が正しく生成されることがわかっています

どうもありがとう

4

1 に答える 1

0

のテストを使用してchildNodes、ドキュメントが Firefox によって設定された 4096 文字の制限を超えているかどうかを確認します。その場合は、ループを使用して childNode を連結します。

var nodes = xml_code.childNodes;
var xml_string = '';
var xml_doc;

if (nodes.length > 1)
  {
  for (var i = 0; i < nodes.length; i++)
    {  
    xml_string += nodes[i].nodeValue;
    }      
  }
else
  {
  xml_string = xml_code;
  }

with (new DOMParser() )
  {
  xml_doc = parseFromString(xml_string, "application/xml")
  }

参考文献

于 2014-05-07T19:34:40.760 に答える