utils_example.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435
  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/htmlparser");
  5. 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>";
  6. var handler = new htmlparser.DefaultHandler(function(err, dom) {
  7. if (err) {
  8. sys.debug("Error: " + err);
  9. }
  10. else {
  11. sys.debug(sys.inspect(dom, false, null));
  12. var id = htmlparser.DomUtils.getElementById("x", dom);
  13. sys.debug("id: " + sys.inspect(id, false, null));
  14. var class = htmlparser.DomUtils.getElements({ class: "y" }, dom);
  15. sys.debug("class: " + sys.inspect(class, false, null));
  16. var multiclass = htmlparser.DomUtils.getElements({ class: function (value) { return(value && value.indexOf("h") > -1); } }, dom);
  17. sys.debug("multiclass: " + sys.inspect(multiclass, false, null));
  18. var name = htmlparser.DomUtils.getElementsByTagName("a", dom);
  19. sys.debug("name: " + sys.inspect(name, false, null));
  20. var text = htmlparser.DomUtils.getElementsByTagType("text", dom);
  21. sys.debug("text: " + sys.inspect(text, false, null));
  22. var nested = htmlparser.DomUtils.getElements({ tag_name: "d", id: "z", class: "w" }, dom);
  23. nested = htmlparser.DomUtils.getElementsByTagName("e", nested);
  24. nested = htmlparser.DomUtils.getElementsByTagType("text", nested);
  25. sys.debug("nested: " + sys.inspect(nested, false, null));
  26. var double = htmlparser.DomUtils.getElementsByTagName("yy", dom);
  27. sys.debug("double: " + sys.inspect(double, false, null));
  28. var single = htmlparser.DomUtils.getElements( { tag_name: "yy", id: "secondyy" }, dom);
  29. sys.debug("single: " + sys.inspect(single, false, null));
  30. }
  31. }, { verbose: false });
  32. var parser = new htmlparser.Parser(handler);
  33. parser.parseComplete(html);