This code would allow you to query for elements with XPath Query
This also works with XHTML (XML Namespace "http://www.w3.org/1999/xhtml").
Admins, please correct the code by addind directives to declare variables.
This is the corrected code.
Node.prototype.queryPathAll = function (namespace, expression) {
  let data = this.ownerDocument || this;
  let nodes = data.evaluate(
    expression,
    this,
    () => namespace,
    XPathResult.ORDERED_NODE_ITERATOR_TYPE,
    null);
  let results = [];
  let node = nodes.iterateNext();
  while (node) {
    // Add the link to the array
    results.push(node);
    // Get the next node
    node = nodes.iterateNext();
  }
  return results;
};
Node.prototype.queryPath = function (namespace, expression) {
  let data = this.ownerDocument || this;
  return data.evaluate(
    expression,
    this,
    () => namespace,
    XPathResult.FIRST_ORDERED_NODE_TYPE,
    null)
    .singleNodeValue;
};
Please delete this comment, after code is corrected.
Thank you.

This code is included and operational in the recent version of Greasemonkey Newspaper, and it enabled me to easily add support to of new XML documents, in addition to selecting of nodes which I could not do otherwise.
https://greasyfork.org/en/scripts/465932-newspaper-syndication-feed-reader/diff?v1=1684183&v2=1683207
Example usage:
Example usage with multiple selection:
Namespace definition:
Enjoy!