Module 基礎模組

模組xml

xml 處理模組,可以使用xml 模組解析和處理xml 和html 文件

要解析xml 文件,你可以使用以下程式碼:

1 2 3 4 5 6 7
var xml = require('xml'); var fs = require('fs'); var xmlStr = fs.readFile('test.xml'); var xmlDoc = xml.parse(xmlStr); console.log(xmlDoc.documentElement.nodeName); // output root node name

在上面的程式碼中,我們使用fs模組的readFile 方法讀取了一個xml 文件,然後使用xml 模組的parse 方法解析該xml 文件,並傳回一個XmlDocument物件xmlDoc。然後,我們就可以透過xmlDoc.documentElement 存取xml 文件的根元素了。

要解析html 文件,你只需稍微修改一下程式碼:

1 2 3 4 5 6 7
var xml = require('xml'); var fs = require('fs'); var htmlStr = fs.readFile('test.html'); var xmlDoc = xml.parse(htmlStr, 'text/html'); console.log(xmlDoc.documentElement.nodeName); // output root node name

在這裡,我們同樣使用了fs模組的readFile 方法讀取了一個html 文件,但我們在呼叫xm​​l 模組的parse 方法時指定了第二個參數為'text/html',這樣xml 模組就會按照html 的語法規則解析文件。

解析後的Xml 文檔物件都是XmlDocument類型,其屬性和方法都可以參考xml 物件模型(DOM)進行操作。

物件

Document

xml 文檔對象,參見XmlDocument物件

1
XmlDocument xml.Document;

靜態函數

parse

解析xml/html 文本,並創建XmlDocument對象,不支援多語種

1 2
static XmlDocument xml.parse(String source, String type = "text/xml");

呼叫參數:

  • source: String, 指定需要解析的xml/html 文字
  • type: String, 指定文字類型,預設為text/xml,也可指定為text/html

回傳結果:


解析xml/html,並創建XmlDocument對象,解析時會根據指定的語種轉換

1 2
static XmlDocument xml.parse(Buffer source, String type = "text/xml");

呼叫參數:

  • source:Buffer, 指定需要解析的xml/html 二進位數據
  • type: String, 指定文字類型,預設為text/xml,也可指定為text/html

回傳結果:


serialize

序列化XmlNode為字串

1
static String xml.serialize(XmlNode node);

呼叫參數:

回傳結果:

  • String, 返回序列化的字串

常量

ELEMENT_NODE

XmlNode的nodeType 屬性常數,表示節點為XmlElement物件

1
const xml.ELEMENT_NODE = 1;

ATTRIBUTE_NODE

XmlNode的nodeType 屬性常數,表示節點為XmlAttr物件

1
const xml.ATTRIBUTE_NODE = 2;

TEXT_NODE

XmlNode的nodeType 屬性常數,表示節點為XmlText物件

1
const xml.TEXT_NODE = 3;

CDATA_SECTION_NODE

XmlNode的nodeType 屬性常數,表示節點為XmlCDATASection物件

1
const xml.CDATA_SECTION_NODE = 4;

PROCESSING_INSTRUCTION_NODE

XmlNode的nodeType 屬性常數,表示節點為XmlProcessingInstruction物件

1
const xml.PROCESSING_INSTRUCTION_NODE = 7;

COMMENT_NODE

XmlNode的nodeType 屬性常數,表示節點為XmlComment物件

1
const xml.COMMENT_NODE = 8;

DOCUMENT_NODE

XmlNode的nodeType 屬性常數,表示節點為XmlDocument物件

1
const xml.DOCUMENT_NODE = 9;

DOCUMENT_TYPE_NODE

XmlNode的nodeType 屬性常數,表示節點為XmlDocumentType物件

1
const xml.DOCUMENT_TYPE_NODE = 10;