sitemap-to-array

Convert sitemap.xml to an array or stream of objects

Usage no npm install needed!

<script type="module">
  import sitemapToArray from 'https://cdn.skypack.dev/sitemap-to-array';
</script>

README

Build Status Coverage Status js-standard-style

sitemap-to-array

Convert a sitemap.xml to an array or stream of objects.

Installation

From npm

$ npm install sitemap-to-array

From GitHub

$ git clone git@github.com:zrrrzzt/sitemap-to-array.git

cd into directory and install dependencies

$ npm install

Usage - callback

Pass a sitemap, either as data or an URL to the sitemap.xml.

Example with data

'use strict'

const fs = require('fs')
const smta = require('sitemap-to-array')
const data = fs.readFileSync('test/data/sitemap.xml', 'utf-8')

smta(data, stream => {
  stream.on('error', error => {
    console.error(error)
  })
  stream.on('data', data => {
    console.log(data.toString())
  })
})

Returns

{"loc":"http://www.telemark.no/Vaare-tjenester","lastmod":"2015-05-06T10:51:03+00:00"}
{"loc":"http://www.telemark.no/Vaare-tjenester/Kurs-og-konferanser","lastmod":"2014-10-06T11:40:22+00:00"}
{"loc":"http://www.telemark.no/Vaare-tjenester/Folkehelse","lastmod":"2015-03-13T07:35:30+00:00"}
{"loc":"http://www.telemark.no/Vaare-tjenester/Folkehelse/Tilbud-HEFRES/Paa-farta-til-skolen","lastmod":"2015-05-24T15:56:56+00:00"}
{"loc":"http://www.telemark.no/Vaare-tjenester/Folkehelse/Tilbud-HEFRES/Alle-barn-sykler","lastmod":"2015-05-22T13:46:26+00:00"}

Example with URL

'use strict'

const smta = require('sitemap-to-array')
const sitemapUrl = 'https://raw.githubusercontent.com/zrrrzzt/sitemap-to-array/master/test/data/sitemap.xml'

smta(sitemapUrl, stream => {
  stream.on('error', error => {
    console.error(error)
  })
  stream.on('data', data => {
    console.log(data.toString())
  })
})

Returns

{"loc":"http://www.telemark.no/Vaare-tjenester","lastmod":"2015-05-06T10:51:03+00:00"}
{"loc":"http://www.telemark.no/Vaare-tjenester/Kurs-og-konferanser","lastmod":"2014-10-06T11:40:22+00:00"}
{"loc":"http://www.telemark.no/Vaare-tjenester/Folkehelse","lastmod":"2015-03-13T07:35:30+00:00"}
{"loc":"http://www.telemark.no/Vaare-tjenester/Folkehelse/Tilbud-HEFRES/Paa-farta-til-skolen","lastmod":"2015-05-24T15:56:56+00:00"}
{"loc":"http://www.telemark.no/Vaare-tjenester/Folkehelse/Tilbud-HEFRES/Alle-barn-sykler","lastmod":"2015-05-22T13:46:26+00:00"}

Usage - callback - without stream

'use strict'
const smta = require('sitemap-to-array')
const options = {
  returnOnComplete: true
}
const sitemapUrl = 'https://raw.githubusercontent.com/zrrrzzt/sitemap-to-array/master/test/data/sitemap.xml'

smta(sitemapUrl, options, (error, list) => {
  if (error) {
    console.error(error)
  } else {
    console.log(list)
  }
})

Returns

[ 
  { loc: 'http://www.telemark.no/Vaare-tjenester',
    lastmod: '2015-05-06T10:51:03+00:00' },
  { loc: 'http://www.telemark.no/Vaare-tjenester/Kurs-og-konferanser',
    lastmod: '2014-10-06T11:40:22+00:00' },
  { loc: 'http://www.telemark.no/Vaare-tjenester/Folkehelse',
    lastmod: '2015-03-13T07:35:30+00:00' },
  { loc: 'http://www.telemark.no/Vaare-tjenester/Folkehelse/Tilbud-HEFRES/Paa-farta-til-skolen',
    lastmod: '2015-05-24T15:56:56+00:00' },
  { loc: 'http://www.telemark.no/Vaare-tjenester/Folkehelse/Tilbud-HEFRES/Alle-barn-sykler',
    lastmod: '2015-05-22T13:46:26+00:00' } 
]

Usage - stream through

pipe a stream of sitemap.xml to the module

- Example from url

'use strict'

const smtaStream = require('sitemap-to-array').stream
const http = require('http')
const sitemap = 'https://raw.githubusercontent.com/zrrrzzt/sitemap-to-array/master/test/data/sitemap.xml'

smtaStream.on('data', data => {
  console.log(data.toString())
})

http.get(sitemap, response => {
  response
    .pipe(smtaStream)
})

returns

{"loc":"http://www.telemark.no/Vaare-tjenester","lastmod":"2015-05-06T10:51:03+00:00"}
{"loc":"http://www.telemark.no/Vaare-tjenester/Kurs-og-konferanser","lastmod":"2014-10-06T11:40:22+00:00"}
{"loc":"http://www.telemark.no/Vaare-tjenester/Folkehelse","lastmod":"2015-03-13T07:35:30+00:00"}
{"loc":"http://www.telemark.no/Vaare-tjenester/Folkehelse/Tilbud-HEFRES/Paa-farta-til-skolen","lastmod":"2015-05-24T15:56:56+00:00"}
{"loc":"http://www.telemark.no/Vaare-tjenester/Folkehelse/Tilbud-HEFRES/Alle-barn-sykler","lastmod":"2015-05-22T13:46:26+00:00"}

- Example from file

'use strict'

const smtaStream = require('sitemap-to-array').stream
const fs = require('fs')
const sitemap = fs.createReadStream('test/data/sitemap.xml')

smtaStream.on('data', data => {
  console.log(data.toString())
})

sitemap
  .pipe(smtaStream)

returns

{"loc":"http://www.telemark.no/Vaare-tjenester","lastmod":"2015-05-06T10:51:03+00:00"}
{"loc":"http://www.telemark.no/Vaare-tjenester/Kurs-og-konferanser","lastmod":"2014-10-06T11:40:22+00:00"}
{"loc":"http://www.telemark.no/Vaare-tjenester/Folkehelse","lastmod":"2015-03-13T07:35:30+00:00"}
{"loc":"http://www.telemark.no/Vaare-tjenester/Folkehelse/Tilbud-HEFRES/Paa-farta-til-skolen","lastmod":"2015-05-24T15:56:56+00:00"}
{"loc":"http://www.telemark.no/Vaare-tjenester/Folkehelse/Tilbud-HEFRES/Alle-barn-sykler","lastmod":"2015-05-22T13:46:26+00:00"} 

License

MIT