Parsing and serializing XML: Difference between revisions
From MozillaZine Knowledge Base
Jump to navigationJump to search
No edit summary |
No edit summary |
||
Line 45: | Line 45: | ||
==Parsing files into DOM trees== | ==Parsing files into DOM trees== | ||
Coming soon | Coming soon | ||
[[Category:Example code]] [[Category:XML in Javascript]] |
Revision as of 13:07, 10 March 2005
Mozilla doesn't support the W3C's Document Object Model Load and Save at this moment, so the easiest way to serialize and deserialize DOM trees is to use the following Mozilla-specific interfaces:
- nsIDOMSerializer to serialize DOM trees to strings or to files
- nsIDOMParser to parse XML from strings into DOM trees
- nsIXMLHttpRequest to parse XML from files into DOM trees (read more). Although nsIDOMParser does have a method named parseFromStream(), it's actually easier to use nsIXMLHttpRequest (yes, it works for local and remote files).
Serializing DOM trees to strings
First, create a DOM tree using code like this.
Now, let's serialize doc
— the DOM tree — to a string:
var serializer = new XMLSerializer(); var xml = serializer.serializeToString(doc);
Serializing DOM trees to files
First, create a DOM tree using code like this.
Now, let's serialize doc
— the DOM tree — to a file (you can read more about using files in Mozilla here):
var serializer = new XMLSerializer(); var foStream = Components.classes["@mozilla.org/network/file-output-stream;1"] .createInstance(Components.interfaces.nsIFileOutputStream); var file = Components.classes["@mozilla.org/file/directory_service;1"] .getService(Components.interfaces.nsIProperties) .get("ProfD", Components.interfaces.nsIFile); // get profile folder file.append("extensions"); // extensions sub-directory file.append("{5872365E-67D1-4AFD-9480-FD293BEBD20D}"); // GUID of your extension file.append("myXMLFile.xml"); // filename foStream.init(file, 0x02 | 0x08 | 0x20, 0664, 0); // write, create, truncate serializer.serializeToFile(doc, foStream, "IS0-8859-1"); // rememeber, doc is the DOM tree foStream.close();
Parsing strings into DOM trees
var theString='<a id="a"><b id="b">hey!</b></a>'; var parser = new DOMParser(); var dom = parser.parseFromString(theString, "text/xml");
Parsing files into DOM trees
Coming soon