| <html> |
| <head> |
| <script src="../../../resources/js-test-pre.js"></script> |
| <script src="../xpath-test-pre.js"></script> |
| </head> |
| <body> |
| <div id="console"></div> |
| |
| <script> |
| var doc = (new DOMParser).parseFromString( |
| '<doc>' + |
| ' <para id="1" />' + |
| ' <div id="2" />' + |
| ' <para id="3" />' + |
| '</doc>', |
| 'application/xml'); |
| test(doc, doc.documentElement, "para", [doc.getElementsByTagName("para")[0], doc.getElementsByTagName("para")[1]]); |
| test(doc, doc.documentElement, "*", [doc.getElementsByTagName("para")[0], doc.getElementsByTagName("div")[0], doc.getElementsByTagName("para")[1]]); |
| |
| doc = (new DOMParser).parseFromString('<doc>This is <i>some</i> text.</doc>', 'application/xml'); |
| test(doc, doc.documentElement, "text()", [doc.documentElement.firstChild, doc.documentElement.lastChild]); |
| |
| doc = (new DOMParser).parseFromString('<doc name="foo" value="bar" />', 'application/xml'); |
| test(doc, doc.documentElement, "@name", [doc.documentElement.getAttributeNode("name")]); |
| test(doc, doc.documentElement, "@*", [doc.documentElement.getAttributeNode("name"), doc.documentElement.getAttributeNode("value")]); |
| |
| doc = (new DOMParser).parseFromString('<doc><para id="1" /><para id="2" /><para id="3" /></doc>', 'application/xml'); |
| test(doc, doc.documentElement, "para[1]", [doc.getElementsByTagName("para")[0]]); |
| test(doc, doc.documentElement, "para[last()]", [doc.getElementsByTagName("para")[2]]); |
| |
| doc = (new DOMParser).parseFromString( |
| '<doc>' + |
| ' <chapter><para id="1" /><para id="2" /></chapter>' + |
| ' <section><para id="3" /><sub><para id="4" /></sub></section>' + |
| ' <para id="4" />' + |
| '</doc>', |
| 'application/xml'); |
| test(doc, doc.documentElement, "*/para", [doc.getElementsByTagName("para")[0], doc.getElementsByTagName("para")[1], doc.getElementsByTagName("para")[2]]); |
| |
| doc = (new DOMParser).parseFromString( |
| '<doc>' + |
| ' <chapter id="1" /><chapter id="2" /><chapter id="3" />' + |
| ' <chapter id="4">' + |
| ' <section id="4.1" /><section id="4.2" /><section id="4.3" />' + |
| ' </chapter>' + |
| ' <chapter id="5">' + |
| ' <section id="5.1" /><section id="5.2" /><section id="5.3" />' + |
| ' </chapter>' + |
| '</doc>', |
| 'application/xml'); |
| test(doc, doc.documentElement, "/doc/chapter[5]/section[2]", [doc.getElementsByTagName("section")[4]]); |
| |
| doc = (new DOMParser).parseFromString( |
| '<doc>' + |
| ' <chapter><para id="1" /><para id="2" /></chapter>' + |
| ' <chapter><section><para id="3" /></section></chapter>' + |
| ' <para id="4" />' + |
| '</doc>', |
| 'application/xml'); |
| test(doc, doc.documentElement, "chapter//para", [doc.getElementsByTagName("para")[0], doc.getElementsByTagName("para")[1], doc.getElementsByTagName("para")[2]]); |
| |
| doc = (new DOMParser).parseFromString( |
| '<para id="0">' + |
| ' <div id="1" />' + |
| ' <para id="2">' + |
| ' <para id="3" />' + |
| ' </para>' + |
| '</para>', |
| 'application/xml'); |
| test(doc, '//para[@id="2"]', '//para', [doc.getElementsByTagName("para")[0], doc.getElementsByTagName("para")[1], doc.getElementsByTagName("para")[2]]); |
| |
| doc = (new DOMParser).parseFromString( |
| '<doc>' + |
| ' <item id="1">' + |
| ' <context />' + |
| ' <olist><item id="2" /></olist>' + |
| ' </item>' + |
| ' <olist><item id="3" /></olist>' + |
| '</doc>', |
| 'application/xml'); |
| test(doc, '//context', '//olist/item', [doc.getElementsByTagName("item")[1], doc.getElementsByTagName("item")[2]]); |
| |
| doc = (new DOMParser).parseFromString( |
| '<doc id="0">' + |
| ' <para id="1"/>' + |
| '</doc>', |
| 'application/xml'); |
| test(doc, doc.documentElement, '.', [doc.documentElement]); |
| |
| doc = (new DOMParser).parseFromString( |
| '<para id="0">' + |
| ' <div id="1" />' + |
| ' <para id="2">' + |
| ' <para id="3" />' + |
| ' </para>' + |
| '</para>', |
| 'application/xml'); |
| test(doc, '//para[@id="2"]', './para', [doc.getElementsByTagName("para")[2]]); |
| |
| doc = (new DOMParser).parseFromString( |
| '<doc id="0">' + |
| ' <chapter id="1">' + |
| ' <item id="2" />' + |
| ' <item id="3"><subitem id="4" /></item>' + |
| ' </chapter>' + |
| '</doc>', |
| 'application/xml'); |
| test(doc, '//item[@id="3"]', '..', [doc.getElementsByTagName("chapter")[0]]); |
| |
| doc = (new DOMParser).parseFromString( |
| '<doc id="0">' + |
| ' <chapter id="1" lang="en">' + |
| ' <item id="2" />' + |
| ' <item id="3"><subitem id="4" /></item>' + |
| ' </chapter>' + |
| '</doc>', |
| 'application/xml'); |
| test(doc, '//item[@id="3"]', '../@lang', [doc.getElementsByTagName("chapter")[0].getAttributeNode("lang")]); |
| |
| doc = (new DOMParser).parseFromString( |
| '<doc>' + |
| ' <para id="1" type="info" />' + |
| ' <para id="2" type="warning" />' + |
| ' <para id="3" type="warning" />' + |
| ' <para id="4" type="error" />' + |
| '</doc>', |
| 'application/xml'); |
| test(doc, doc.documentElement, 'para[@type="warning"]', [doc.getElementsByTagName("para")[1], doc.getElementsByTagName("para")[2]]); |
| |
| doc = (new DOMParser).parseFromString( |
| '<doc>' + |
| ' <para id="1" type="info" />' + |
| ' <para id="2" type="warning" />' + |
| ' <para id="3" type="warning" />' + |
| ' <para id="4" type="warning" />' + |
| ' <para id="5" type="error" />' + |
| ' <para id="6" type="warning" />' + |
| ' <para id="7" type="warning" />' + |
| '</doc>', |
| 'application/xml'); |
| test(doc, doc.documentElement, 'para[@type="warning"][5]', [doc.getElementsByTagName("para")[6]]); |
| test(doc, doc.documentElement, 'para[5][@type="warning"]', []); |
| |
| doc = (new DOMParser).parseFromString( |
| '<doc>' + |
| ' <chapter id="1" />' + |
| ' <chapter id="2"><title>Introduction</title></chapter>' + |
| ' <chapter id="3"><title>Body</title></chapter>' + |
| ' <chapter id="4">' + |
| ' <title>Another</title>' + |
| ' <title>Introduction</title>' + |
| ' </chapter>' + |
| '</doc>', |
| 'application/xml'); |
| test(doc, doc.documentElement, "chapter[title='Introduction']", [doc.getElementsByTagName("chapter")[1], doc.getElementsByTagName("chapter")[3]]); |
| |
| doc = (new DOMParser).parseFromString( |
| '<doc>' + |
| ' <chapter id="1" />' + |
| ' <chapter id="2"><title /></chapter>' + |
| ' <chapter id="3"><title /><title /></chapter>' + |
| '</doc>', |
| 'application/xml'); |
| test(doc, doc.documentElement, "chapter[title]", [doc.getElementsByTagName("chapter")[1], doc.getElementsByTagName("chapter")[2]]); |
| |
| doc = (new DOMParser).parseFromString( |
| '<doc>' + |
| ' <employee name="Alice" />' + |
| ' <employee name="Bob" secretary="Cathy" />' + |
| ' <employee name="Dianne" secretary="Edward" assistant="Fran" />' + |
| '</doc>', |
| 'application/xml'); |
| test(doc, doc.documentElement, "employee[@secretary and @assistant]", [doc.getElementsByTagName("employee")[2]]); |
| |
| </script> |
| <script src="../../../resources/js-test-post.js"></script> |
| </body> |
| </html> |