Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

"use strict";
test(() => {
const doc = (new DOMParser()).parseFromString(`<Foo><bar>baz</bar></Foo>`, "application/xml");
assert_equals(doc.querySelector("Foo"), doc.documentElement, "Foo");
assert_equals(doc.querySelector("bar"), doc.documentElement.firstChild, "bar");
assert_equals(doc.querySelector("Foo bar"), doc.documentElement.firstChild, "Foo bar");
}, "Descendant combinator");
test(() => {
const xml = `
<root>
<aB>
<c></c>
</aB>
<cd>
<e></e>
</cd>
</root>
`;
const doc = (new DOMParser()).parseFromString(xml, "application/xml");
assert_not_equals(doc.querySelector("c"), null, "c");
assert_equals(doc.querySelector("aB *"), doc.querySelector("c"), "aB *");
assert_not_equals(doc.querySelector("e"), null, "e");
assert_equals(doc.querySelector("cd *"), doc.querySelector("e"), "cd *");
}, "Descendant combinator with *");
test(() => {
const doc = (new DOMParser()).parseFromString(`<elem>
<Test>
content
<my-tag>abc</my-tag>
</Test>
</elem>`, "text/xml");
assert_not_equals(doc.querySelector("Test"), null, "Test");
assert_equals(doc.querySelector("test"), null, "test");
assert_not_equals(doc.querySelector("my-tag"), null, "my-tag");
assert_not_equals(doc.querySelector("Test>my-tag"), null, "my-tag");
}, "Child combinator");