Node: lookupNamespaceURI() method
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
The lookupNamespaceURI()
method of the Node
interface
takes a prefix as parameter and returns the namespace URI associated with it on the given node if found (and
null
if not). This method's existence allows Node
objects to be passed as a namespace resolver to XPathEvaluator.createExpression()
and XPathEvaluator.evaluate()
.
Syntax
js
lookupNamespaceURI(prefix)
Parameters
prefix
-
The prefix to look for.
Note: This parameter is not optional, but can be set to
null
.
Return value
A string containing the namespace URI corresponding to the prefix.
- Always returns
null
if the node is aDocumentFragment
,DocumentType
,Document
with nodocumentElement
, orAttr
with no associated element. - If
prefix
is"xml"
, the return value is always"http://www.w3.org/XML/1998/namespace"
. - If
prefix
is"xmlns"
, the return value is always"http://www.w3.org/2000/xmlns/"
. - If the
prefix
isnull
, the return value is the default namespace URI. - If the prefix is not found, the return value is
null
.
Example
html
<div style="display: none">
<div>Test HTML element</div>
<svg>
<text>Test SVG element</text>
</svg>
<math>Test MathML element</math>
</div>
<table>
<thead>
<tr>
<th><code>prefix</code></th>
<th><code><div></code></th>
<th><code><svg></code></th>
<th><code><math></code></th>
</tr>
</thead>
<tbody></tbody>
</table>
js
const htmlElt = document.querySelector("div");
const svgElt = document.querySelector("svg");
const mathElt = document.querySelector("math");
const tbody = document.querySelector("tbody");
for (const prefix of ["xmlns", "xml", "html", "svg", "xlink", "", null]) {
const row = document.createElement("tr");
tbody.appendChild(row);
row.appendChild(document.createElement("td")).textContent =
JSON.stringify(prefix);
for (const el of [htmlElt, svgElt, mathElt]) {
console.log(el, prefix, el.lookupNamespaceURI(prefix));
row.appendChild(document.createElement("td")).textContent = String(
el.lookupNamespaceURI(prefix),
);
}
}
Specifications
Specification |
---|
DOM Standard # dom-node-lookupnamespaceuri |
Browser compatibility
BCD tables only load in the browser