1 //node --prof --prof_auto profile.js
2 //deps/v8/tools/mac-tick-processor v8.log
3 var sys
= require("sys");
4 var htmlparser
= require("./lib/node-htmlparser");
6 var html
= "<a>text a</a><b id='x'>text b</b><c class='y'>text c</c><d id='z' class='w'><e>text e</e></d><g class='g h i'>hhh</g><yy>hellow</yy><yy id='secondyy'>world</yy>";
8 var handler
= new htmlparser
.DefaultHandler(function(err
, dom
) {
10 sys
.debug("Error: " + err
);
13 sys
.debug(sys
.inspect(dom
, false, null));
14 var id
= htmlparser
.DomUtils
.getElementById("x", dom
);
15 sys
.debug("id: " + sys
.inspect(id
, false, null));
16 var class = htmlparser
.DomUtils
.getElements({ class: "y" }, dom
);
17 sys
.debug("class: " + sys
.inspect(class, false, null));
18 var multiclass
= htmlparser
.DomUtils
.getElements({ class: function (value
) { return(value
&& value
.indexOf("h") > -1); } }, dom
);
19 sys
.debug("multiclass: " + sys
.inspect(multiclass
, false, null));
20 var name
= htmlparser
.DomUtils
.getElementsByTagName("a", dom
);
21 sys
.debug("name: " + sys
.inspect(name
, false, null));
22 var text
= htmlparser
.DomUtils
.getElementsByTagType("text", dom
);
23 sys
.debug("text: " + sys
.inspect(text
, false, null));
24 var nested
= htmlparser
.DomUtils
.getElements({ tag_name
: "d", id
: "z", class: "w" }, dom
);
25 nested
= htmlparser
.DomUtils
.getElementsByTagName("e", nested
);
26 nested
= htmlparser
.DomUtils
.getElementsByTagType("text", nested
);
27 sys
.debug("nested: " + sys
.inspect(nested
, false, null));
28 var double = htmlparser
.DomUtils
.getElementsByTagName("yy", dom
);
29 sys
.debug("double: " + sys
.inspect(double, false, null));
30 var single
= htmlparser
.DomUtils
.getElements( { tag_name
: "yy", id
: "secondyy" }, dom
);
31 sys
.debug("single: " + sys
.inspect(single
, false, null));
33 }, { verbose
: false });
34 var parser
= new htmlparser
.Parser(handler
);
35 parser
.parseComplete(html
);