Revive E4X as EXQO(ECMA-Script's XML Query Object) with SAX added on as methods for the xml object. With an added method call xPath(); Xml file to be use: <note> <date>2002-08-01</date> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note> Example: //E4X spec. var xmlDoc=new XML(); xmlDoc.load("note.xml"); document.write(xmlDoc.body); //please look at the bottom for a corresponding to this. //output body text value Example: //with added xPath() method var xmlDoc=new XML(); xmlDoc.load("note.xml"); document.write( xmlDoc.xPath("//body"); //relative path expression ); Example: var xmlDoc=new XML(); xmlDoc.load("note.xml"); document.write( xmlDoc.xPath("/note/body"); //absolute path expression ); This will gain attention to the ease of navigating the dom. Also the other goal is to point to xQuery as a server scripting alternative to popular server side scripting such as php. //thoughts on the E4X spec. //the e4x spec of the look at this make it to where the root element is the container for the object return. I feel, this should lean more to JSON type syntax: var xmlDoc = { note:[ {date:"2002-08-01"}, {to:"Tove"}, {from:"Jani"}, {heading:"Reminder"}, {body:"Don't forget me this weekend!"} ]} document.write( xmlDoc.note[4].body); So let's say we do the same for the spec to make it more... Easy to compose a new spec with. The dom or really htmlelementobject API and documentobject API both have methods for manipulating the xml/html. It stand to reason to mimic those feature via JSON. As so: var xmlDoc=new XML(); xmlDoc.load("note.xml"); document.write(xmlDoc.note[4].body); And again with the xPath(/*expression*/); //method var xmlDoc=new XML(); xmlDoc.load("note.xml"); document.write( xmlDoc.xPath("/note/body") ); For the first spec, I say to use only xPath 1.0 With attribute, I say to use the xPath(/*expression*/); method to retrieve that via string: <date attr="value"> 2002-08-01 </date> xmlDoc.xPath("/note/@attr"); //xPath 1.0 spec ); to make the spec easier to adopt. Making this appliance to "use strict"; I say to make a new statement declaration: "use EXQO"; or "use ESXQO"; Use JSON syntax when it comes to the EMCAScript environment. Use xPath(/*expression*/); for all non EMCAScript environment expression, and syntax. Note that this version may receive further editing in the future. Thank you for reading. E-S4L E-S4L |