-
-
Notifications
You must be signed in to change notification settings - Fork 110
Examples
Ozgur Ozcitak edited this page Nov 24, 2016
·
2 revisions
The single-entry Atom Feed Document as given in The Atom Syndication Format:
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title type="text">dive into mark</title>
<subtitle type="html">A <em>lot</em> of effort went into making this effortless</subtitle>
<updated>2005-07-31T12:29:29Z</updated>
<id>tag:example.org,2003:3</id>
<link rel="alternate" type="text/html" hreflang="en" href="http://example.org/"/>
<link rel="self" type="application/atom+xml" href="http://example.org/feed.atom"/>
<rights>Copyright (c) 2003, Mark Pilgrim</rights>
<generator uri="http://www.example.com/" version="1.0">Example Toolkit</generator>
<entry>
<title>Atom draft-07 snapshot</title>
<link rel="alternate" type="text/html" href="http://example.org/2005/04/02/atom"/>
<link rel="enclosure" type="audio/mpeg" length="1337" href="http://example.org/audio/ph34r_my_podcast.mp3"/>
<id>tag:example.org,2003:3.2397</id>
<updated>2005-07-31T12:29:29Z</updated>
<published>2003-12-13T08:29:29-04:00</published>
<author>
<name>Mark Pilgrim</name>
<uri>http://example.org/</uri>
<email>f8dy@example.com</email>
</author>
<contributor>
<name>Sam Ruby</name>
</contributor>
<contributor>
<name>Joe Gregorio</name>
</contributor>
<content type="xhtml" xml:lang="en" xml:base="http://diveintomark.org/">
<div xmlns="http://www.w3.org/1999/xhtml">
<p>
<i>[Update: The Atom draft is finished.]</i>
</p>
</div>
</content>
</entry>
</feed>
Using create
and friends:
var builder = require('xmlbuilder');
var feed = builder.create('feed', { encoding: 'utf-8' })
.att('xmlns', 'http://www.w3.org/2005/Atom')
.ele('title', { 'type': 'text'}, 'dive into mark').up()
.ele('subtitle', { 'type': 'html' }, 'A <em>lot</em> of effort went into making this effortless').up()
.ele('updated', '2005-07-31T12:29:29Z').up()
.ele('id', 'tag:example.org,2003:3').up()
.ele('link', { 'rel': 'alternate', 'type': 'text/html', 'hreflang': 'en', 'href': 'http://example.org/' }).up()
.ele('link', { 'rel': 'self', 'type': 'application/atom+xml', 'href': 'http://example.org/feed.atom' }).up()
.ele('rights', 'Copyright (c) 2003, Mark Pilgrim').up()
.ele('generator', { 'uri': 'http://www.example.com/', 'version': '1.0' }, 'Example Toolkit').up()
.ele('entry')
.ele('title', 'Atom draft-07 snapshot').up()
.ele('link', { 'rel': 'alternate', 'type': 'text/html', 'href': 'http://example.org/2005/04/02/atom' }).up()
.ele('link', { 'rel': 'enclosure', 'type': 'audio/mpeg', 'length': '1337', 'href': 'http://example.org/audio/ph34r_my_podcast.mp3' }).up()
.ele('id', 'tag:example.org,2003:3.2397').up()
.ele('updated', '2005-07-31T12:29:29Z').up()
.ele('published', '2003-12-13T08:29:29-04:00').up()
.ele('author')
.ele('name', 'Mark Pilgrim').up()
.ele('uri', 'http://example.org/').up()
.ele('email', 'f8dy@example.com').up()
.up()
.ele('contributor')
.ele('name', 'Sam Ruby').up()
.up()
.ele('contributor')
.ele('name', 'Joe Gregorio').up()
.up()
.ele('content', { 'type': 'xhtml', 'xml:lang': 'en', 'xml:base': 'http://diveintomark.org/' })
.ele('div', { 'xmlns': 'http://www.w3.org/1999/xhtml' })
.ele('p')
.ele('i', '[Update: The Atom draft is finished.]').up()
.up()
.up()
.up()
.up()
console.log(feed.end({ pretty: true }));
Using JS objects:
var builder = require('xmlbuilder');
var feedObj = {
'feed': {
'@xmlns': 'http://www.w3.org/2005/Atom',
'title': { '@type': 'text', '#text': 'dive into mark' },
'subtitle': { '@type': 'html', '#text': 'A <em>lot</em> of effort went into making this effortless' },
'updated': '2005-07-31T12:29:29Z',
'id': 'tag:example.org,2003:3',
'link': [
{ '@rel': 'alternate', '@type': 'text/html', '@hreflang': 'en', '@href': 'http://example.org/' },
{ '@rel': 'self', '@type': 'application/atom+xml', '@href': 'http://example.org/feed.atom' }
],
'rights': 'Copyright (c) 2003, Mark Pilgrim',
'generator': { '@uri': 'http://www.example.com/', '@version': '1.0', '#text': 'Example Toolkit' },
'entry': {
'title': 'Atom draft-07 snapshot',
'link': [
{ '@rel': 'alternate', '@type': 'text/html', '@href': 'http://example.org/2005/04/02/atom' },
{ '@rel': 'enclosure', '@type': 'audio/mpeg', '@length': '1337', '@href': 'http://example.org/audio/ph34r_my_podcast.mp3' }
],
'id': 'tag:example.org,2003:3.2397',
'updated': '2005-07-31T12:29:29Z',
'published': '2003-12-13T08:29:29-04:00',
'author': {
'name': 'Mark Pilgrim',
'uri': 'http://example.org/',
'email': 'f8dy@example.com'
},
'contributor' : [
{ 'name': 'Sam Ruby' },
{ 'name': 'Joe Gregorio' }
],
'content': {
'@type': 'xhtml',
'@xml:lang': 'en',
'@xml:base': 'http://diveintomark.org/',
'div': {
'@xmlns': 'http://www.w3.org/1999/xhtml',
'p': {
'i': '[Update: The Atom draft is finished.]'
}
}
}
}
}
}
var feed = builder.create(feedObj, { encoding: 'utf-8' })
console.log(feed.end({ pretty: true }));