forked from vimperator/vimperator-labs
-
Notifications
You must be signed in to change notification settings - Fork 0
Vimperator
License
jonavon/vimperator-labs
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
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 = <foo bar="baz" baz="qux"> <bar> <baz id="1"/> </bar> <baz id="2"/> </foo>; // Select all bar elements of the root foo element > xml.bar <bar><baz id="1"/></bar> // Select all baz elements anywhere beneath the root > xml..baz <baz id="1"/> <baz id="2"/> // Select all of the immediate children of the root > xml.* <bar><baz id="1"/></bar> <baz id="2"/> // 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] += <quux/> <baz id="1"/> <quux/> > xml <foo bar="baz" baz="qux"> <bar> <baz id="1"/> <quux/> </bar> <baz id="2"/> </foo> // and beneath the second > xml.baz[1] = <quux id="1"/> > xml <foo bar="baz" baz="qux"> <bar> <baz id="1"/> <quux/> </bar> <baz id="2"/> <quux id="1"/> </foo> // Replace bar's subtree with a foo element > xml.bar.* = <foo id="1"/> > xml <foo bar="baz" baz="qux"> <bar> <foo id="1"/> </bar> <baz id="2"/> <quux id="1"/> </foo> // Add a bar below bar > xml.bar.* += <bar id="1"/> <foo id="1"/> <bar id="1"/> > xml <foo bar="baz" baz="qux"> <bar> <foo id="1"/> <bar id="1"/> </bar> <baz id="2"/> <quux id="1"/> </foo> // Adding a quux attribute to the root > xml.@quux = "foo" foo > xml <foo bar="baz" baz="qux" quux="foo"> <bar> <foo id="1"/> <bar id="1"/> </bar> <baz id="2"/> <quux id="1"/> </foo> > xml.bar.@id = "0" > xml..foo[0] = "Foo" Foo > xml..bar[1] = "Bar" Bar > xml js> xml <foo bar="baz" baz="qux" quux="foo" id="0"> <bar id="0"> <foo id="1">Foo</foo> <bar id="1">Bar</bar> </bar> <baz id="2"/> <quux id="1"/> </foo> // Selecting all bar elements where id="1" > xml..bar.(@id == 1) Bar // Literals: // XMLList literal. No root node. > <>Foo<br/>Baz</> Foo <br/> Baz // Interpolation. > let x = "<foo/>" > <foo bar={x}>{x + "<?>"}</foo> <foo/><?> > <foo bar={x}>{x + "<?>"}</foo>.toXMLString() <foo bar="<foo/>"><foo/><?></foo> > let x = <foo/> > <foo bar={x}>{x}</foo>.toXMLString() <foo bar=""> <foo/> </foo>
About
Vimperator
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published