簡體   English   中英

如何在node.js中使用xml文件?

[英]How do I make use of an xml file in node.js?

在我的server.js文件中,我提出了一個HTTP GET請求,該請求應該返回xml。 當我將GET請求的響應記錄到控制台時,它看上去很亂,其中包含很多問號和黑色菱形,如下圖所示: 在此處輸入圖片說明

當我在GET請求中使用與我使用的相同的URL並在瀏覽器中打開它時,它會自動下載一個gzip文件,該文件解壓縮后會包含帶有數據的清晰xml文件(在我的文本編輯器中)。

如何在server.js文件中獲取正確格式的xml? 我需要在程序中使用它,而不是在文本編輯器中使用(顯然)。

這是我的GET請求:

axios.get('http://www2.jobs2careers.com/feed.php?id=1237-2595&c=1&pass=HeahE0W1ecAkkF0l')
  .then(function(response) {
    console.log(response.data);
  });

我嘗試使用targz庫提取gzip文件,如下所示:

axios.get('http://www2.jobs2careers.com/feed.php?id=1237-2595&c=1&pass=HeahE0W1ecAkkF0l')
  .then(function(response) {
    targz().extract(response.data, '/data', function(err){
      if (err) {
        console.log('Something is wrong ', err.stack);
      }
      console.log('Job done!');
    });
  });

我在控制台中收到一條錯誤消息:“路徑必須是不包含空字節的字符串”。 我應該使用targz中的extract方法還是使用不正確? 我正在嘗試“提取”或解壓縮response.data。

基於此: 在Node.js跨平台中下載和解壓縮文件的最簡單方法?

var feedURL = 'http://www2.jobs2careers.com/feed.php?id=1237-2595&c=1&pass=HeahE0W1ecAkkF0l';

var request = require('request'),
    zlib = require('zlib'),
    fs = require('fs'),
    out = fs.createWriteStream('./feed.xml');

request(feedURL).pipe(zlib.createGunzip()).pipe(out);

在更新的代碼中,您似乎需要將第一個參數(response.data)設置為gzip文件的文件系統上的路徑,因此出現了空字節錯誤。 我會考慮寫入文件系統,然后解壓縮,或者使用另一個模塊從URL中解壓縮。

當確實從提取的gzip文件中獲取XML(您在正確的路徑上,沒有雙關語)時,可以使用諸如xml2js之類的節點模塊,它將xml解析為Javascript對象,並使其相當易於使用。

暫無
暫無

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

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