A terse introduction to E4X Public Domain The inline XML literals in this code are part of E4X, a standard XML processing interface for ECMAScript. In addition to syntax for XML literals, E4X provides a new kind of native object, "xml", and a syntax, similar to XPath, for accessing and modifying the tree. Here is a brief synopsis of the kind of usage you'll see herein: > let xml = ; // Select all bar elements of the root foo element > xml.bar // Select all baz elements anywhere beneath the root > xml..baz // Select all of the immediate children of the root > xml.* // Select the bar attribute of the root node > xml.@bar baz // Select all id attributes in the tree > xml..@id 1 2 // Select all attributes of the root node > xml.@* baz quz // Add a quux elemend beneath the first baz > xml..baz[0] += > xml // and beneath the second > xml.baz[1] = > xml // Replace bar's subtree with a foo element > xml.bar.* = > xml // Add a bar below bar > xml.bar.* += > xml // Adding a quux attribute to the root > xml.@quux = "foo" foo > xml > xml.bar.@id = "0" > xml..foo[0] = "Foo" Foo > xml..bar[1] = "Bar" Bar > xml js> xml Foo Bar // Selecting all bar elements where id="1" > xml..bar.(@id == 1) Bar // Literals: // XMLList literal. No root node. > <>Foo
Baz Foo
Baz // Interpolation. > let x = "" > {x + ""} > {x + ""}.toXMLString() <foo/><?> > let x = > {x}.toXMLString()