Skip to content
/ dolmx Public

A no dependence xml parser written in javaScript, only 1kb! Run in node or browser.史上最精简XML解析器,只有1KB,无任何依赖,可运行于Node.js或浏览器环境!

Notifications You must be signed in to change notification settings

echosoar/dolmx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dolmx is a 1kb [XML] parser.

It's designed to be as minimal as possible, no devDependencies, run in browser or node.

Features

  • Fast: O(n)
  • Tiny: It's 1kb.
  • Robust: Written in Typescript, Passed a lot of unit tests.
  • Simple: Pass a XML string, get back an javscript Object.

Usage

npm i dolmx --save

Dolmx exports a single function, which parses a string of XML and returns a javscript Object. Couldn't be simpler.

import dolmx from 'dolmx';

let xml = `
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title><![CDATA[知乎热榜]]></title>
    <link>https://www.zhihu.com/billboard</link>
    <description><![CDATA[知乎热榜]]></description>
    <generator>FeedIamGy</generator>
    <webMaster>feed.iam.gy</webMaster>
    <language>zh-cn</language>
    <lastBuildDate>Thu Sep 13 2018 10:42:34 GMT+0800 (CST)</lastBuildDate>
    <ttl>3000</ttl>
    <item>
      <title><![CDATA[苹果公司 2018 年 9 月 12 日举办的秋季发布会有哪些亮点和槽点?]]></title>
      <description>
      <![CDATA[在过去的 10 年里,iOS 一点点成长为了苹果最重要的现金牛]]></description>
      <pubDate>Thu, 13 Sep 2018 02:42:32 GMT</pubDate>
      <guid>https://www.zhihu.com/question/294345168</guid>
      <link>https://www.zhihu.com/question/294345168</link>
    </item>
  </channel>
</rss>
`;

let obj = Dolmx(data);
console.log(JSON.stringify(obj, null, '\t'));
/*
{
  "xml": {
    "_attr": {
      "version": "1.0",
      "encoding": "UTF-8"
    }
  },
  "rss": {
    "channel": {
      "title": {
        "_value": "知乎热榜"
      },
      "link": {
        "_value": "https://www.zhihu.com/billboard"
      },
      "description": {
        "_value": "知乎热榜"
      },
      "generator": {
        "_value": "FeedIamGy"
      },
      "webMaster": {
        "_value": "feed.iam.gy"
      },
      "language": {
        "_value": "zh-cn"
      },
      "lastBuildDate": {
        "_value": "Thu Sep 13 2018 10:42:34 GMT+0800 (CST)"
      },
      "ttl": {
        "_value": "3000"
      },
      "item": {
        "title": {
          "_value": "苹果公司 2018 年 9 月 12 日举办的秋季发布会有哪些亮点和槽点?"
        },
        "description": {
          "_value": "在过去的 10 年里,iOS 一点点成长为了苹果最重要的现金牛"
        },
        "pubDate": {
          "_value": "Thu, 13 Sep 2018 02:42:32 GMT"
        },
        "guid": {
          "_value": "https://www.zhihu.com/question/294345168"
        },
        "link": {
          "_value": "https://www.zhihu.com/question/294345168"
        }
      }
    },
    "_attr": {
      "version": "2.0"
    }
  }
}
*/

License

MIT

About

A no dependence xml parser written in javaScript, only 1kb! Run in node or browser.史上最精简XML解析器,只有1KB,无任何依赖,可运行于Node.js或浏览器环境!

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published