Blame view

node_modules/domhandler/readme.md 2.67 KB
ce4c83ff   wxy   初始提交
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
  # domhandler [![Build Status](https://travis-ci.org/fb55/domhandler.svg?branch=master)](https://travis-ci.org/fb55/domhandler)
  
  The DOM handler (formally known as DefaultHandler) creates a tree containing all nodes of a page. The tree may be manipulated using the [domutils](https://github.com/fb55/domutils) library.
  
  ## Usage
  ```javascript
  var handler = new DomHandler([ <func> callback(err, dom), ] [ <obj> options ]);
  // var parser = new Parser(handler[, options]);
  ```
  
  Available options are described below.
  
  ## Example
  ```javascript
  var htmlparser = require("htmlparser2");
  var rawHtml = "Xyz <script language= javascript>var foo = '<<bar>>';< /  script><!--<!-- Waah! -- -->";
  var handler = new htmlparser.DomHandler(function (error, dom) {
      if (error)
      	[...do something for errors...]
      else
      	[...parsing done, do something...]
          console.log(dom);
  });
  var parser = new htmlparser.Parser(handler);
  parser.write(rawHtml);
  parser.end();
  ```
  
  Output:
  
  ```javascript
  [{
      data: 'Xyz ',
      type: 'text'
  }, {
      type: 'script',
      name: 'script',
      attribs: {
      	language: 'javascript'
      },
      children: [{
      	data: 'var foo = \'<bar>\';<',
      	type: 'text'
      }]
  }, {
      data: '<!-- Waah! -- ',
      type: 'comment'
  }]
  ```
  
  ## Option: normalizeWhitespace
  Indicates whether the whitespace in text nodes should be normalized (= all whitespace should be replaced with single spaces). The default value is "false". 
  
  The following HTML will be used:
  
  ```html
  <font>
  	<br>this is the text
  <font>
  ```
  
  ### Example: true
  
  ```javascript
  [{
      type: 'tag',
      name: 'font',
      children: [{
      	data: ' ',
      	type: 'text'
      }, {
      	type: 'tag',
      	name: 'br'
      }, {
      	data: 'this is the text ',
      	type: 'text'
      }, {
      	type: 'tag',
      	name: 'font'
      }]
  }]
  ```
  
  ### Example: false
  
  ```javascript
  [{
      type: 'tag',
      name: 'font',
      children: [{
      	data: '\n\t',
      	type: 'text'
      }, {
      	type: 'tag',
      	name: 'br'
      }, {
      	data: 'this is the text\n',
      	type: 'text'
      }, {
      	type: 'tag',
      	name: 'font'
      }]
  }]
  ```
  
  ## Option: withDomLvl1
  
  Adds DOM level 1 properties to all elements.
  
  <!-- TODO: description -->
  
  ## Option: withStartIndices
  Indicates whether a `startIndex` property will be added to nodes. When the parser is used in a non-streaming fashion, `startIndex` is an integer indicating the position of the start of the node in the document. The default value is "false".
  
  ## Option: withEndIndices
  Indicates whether a `endIndex` property will be added to nodes. When the parser is used in a non-streaming fashion, `endIndex` is an integer indicating the position of the end of the node in the document. The default value is "false".