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 a DocumentFragment, DocumentType, Document with no documentElement, or Attr 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 is null, 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>&lt;div&gt;</code></th>
      <th><code>&lt;svg&gt;</code></th>
      <th><code>&lt;math&gt;</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

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
lookupNamespaceURI

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

See also