nsIDOMParser+XPath

greasemonkeyのconfig.xml読み込み部分。
便利な世の中になりました。

Config.prototype.load = function() {
  var domParser = Components.classes["@mozilla.org/xmlextras/domparser;1"]
    .createInstance(Components.interfaces.nsIDOMParser);

  var configContents = getContents(getScriptFileURI("config.xml"));
  var doc = domParser.parseFromString(configContents, "text/xml");
  var nodes = doc.evaluate("/UserScriptConfig/Script", doc, null, 0, null);

  this.scripts = [];

書くときは

  var doc = document.implementation.createDocument("", "UserScriptConfig", null);
....
  new XMLSerializer().serializeToStream(doc, configStream, "utf-8");

documentをつくってserialize.