run.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. var sys = require('sys'),
  2. dom = require("../../lib/jsdom/level1/core").dom.level1.core;
  3. // git clone git://github.com/robrighter/node-xml.git into ~/.node_libraries
  4. var xml = require("node-xml/lib/node-xml");
  5. var doc = new dom.Document();
  6. var currentElement = doc;
  7. var totalElements = 0;
  8. var parser = new xml.SaxParser(function(cb) {
  9. cb.onStartDocument(function() {
  10. });
  11. cb.onEndDocument(function() {
  12. sys.puts((doc.getElementsByTagName("*").length === totalElements) ? "success" : "fail");
  13. });
  14. cb.onStartElementNS(function(elem, attrs, prefix, uri, namespaces) {
  15. totalElements++;
  16. var element = doc.createElement(elem);
  17. currentElement.appendChild(element);
  18. currentElement = element;
  19. sys.puts("=> Started: " + elem + " uri="+uri +" (Attributes: " + JSON.stringify(attrs) + " )");
  20. });
  21. cb.onEndElementNS(function(elem, prefix, uri) {
  22. currentElement = currentElement.parentNode;
  23. sys.puts("<= End: " + elem + " uri="+uri + "\n");
  24. });
  25. cb.onCharacters(function(chars) {
  26. });
  27. cb.onCdata(function(cdata) {
  28. sys.puts('<CDATA>'+cdata+"</CDATA>");
  29. });
  30. cb.onComment(function(msg) {
  31. sys.puts('<COMMENT>'+msg+"</COMMENT>");
  32. });
  33. cb.onWarning(function(msg) {
  34. sys.puts('<WARNING>'+msg+"</WARNING>");
  35. });
  36. cb.onError(function(msg) {
  37. sys.puts('<ERROR>'+JSON.stringify(msg)+"</ERROR>");
  38. });
  39. });
  40. //example read from file
  41. parser.parseFile("example.xml");