1

IIS でホストされている Node.js を介してローカル XML ファイルを読み込んで解析しようとしています。fs readFile を使用して文字列を読み取り、xmldom モジュールを使用してそれを解析しました。ファイルサイズが小さくなるまで (数 kb) 動作しますが、3Mb の xml を読み込もうとすると失敗します。

Windows 用の他の xml モジュールでパフォーマンスが向上するものはどれですか?

これは私のコードです

var fs = require('fs');
fs.readFile('C:\\Temp\\TEST.xml', 'ascii', function(err,data){
    if(err) {
        console.log("Could not open file"+ err);
        process.exit(1);
    }
    var Dom = require('xmldom').DOMParser;
    var doc = new Dom().parseFromString(data.substring(2,data.lenght));
    console.log(doc.childNodes[0].localName);
});

5 分後、xml パーサーはまだ実行されていますが、より単純な例では機能します。msinfo32 からの出力を xml 形式で保存しました

10 分後の出力は RangeError: Maximum call stack size exceeded です。

出力は「msinfo32 /nfo C:\TEMP\TEST.NFO」から生成されます

4

3 に答える 3

0

ここで xml ドキュメントが有効であることを確認してください。

http://www.w3schools.com/xml/xml_validator.asp

それが失敗している場合は、github ページで問題を開くことをお勧めします

npmで他のモジュールを検索できます

私は問題なくxml2jsを個人的に使用しました

于 2012-05-14T09:04:30.740 に答える
0

msinfo32 が「ucs2」に出力する場合、間違ったエンコーディングが問題の原因でした。ファイル全体を解析するのに数分かかる場合でも、Xmldom パーサーは正常に動作します。

xml-splitterを使用して、解析する xml ブランチを抽出しました

于 2012-05-23T07:31:39.060 に答える