Skip to content

HTML mode and XML mode

Greg Bowler edited this page Mar 4, 2026 · 2 revisions

HTML mode and XML mode

Translator defaults to HTML mode:

new Translator("[data-FOO='bar']");

In HTML mode (htmlMode: true):

  • Element names are treated case-insensitively.
  • Attribute names are lowered for matching.
  • Attribute values remain case-sensitive.

XML mode

When querying XML, pass htmlMode: false and usually use prefix: "//".

$translator = new Translator(
	"[data-FOO='bar']",
	prefix: "//",
	htmlMode: false
);

In XML mode:

  • Element names are case-sensitive.
  • Attribute names are case-sensitive.
  • Attribute values are case-sensitive.

Important loading note

For XML behaviour, load content as XML (load, loadXML, or loadXMLFile) rather than HTML loaders (loadHTML, loadHTMLFile), because HTML loaders normalise names.


Continue to prefixes and advanced usage.

Clone this wiki locally