基盤地図情報のXMLデータを使ったツールを作ろうとした際に、XML文書が妥当な物かをチェックするために、下記のコードで、 element.getElementsByTagNameNS() で名前空間と要素で判断しようとしたところ、lengthが0になってしまい失敗。

<?xml version="1.0" encoding="utf-8"?>
<Dataset xsi:schemaLocation="http://fgd.gsi.go.jp/spec/2008/FGD_GMLSchema FGD_GMLSchema.xsd"
	xmlns:gml="http://www.opengis.net/gml/3.2"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:xlink="http://www.w3.org/1999/xlink"
	xmlns="http://fgd.gsi.go.jp/spec/2008/FGD_GMLSchema"
	gml:id="Dataset1">
  <gml:description>基盤地図情報メタデータ ID=fmdid:15-0701</gml:description>
  <gml:name>基盤地図情報ダウンロードデータ(GML版)</gml:name>
</Dataset>
var isValidXML = function (dom) {
  var namespaces = [
    'http://fgd.gsi.go.jp/spec/2008/FGD_GMLSchema',
    'http://www.opengis.net/gml/3.2',
    'http://www.w3.org/2001/XMLSchema-instance',
    'http://www.w3.org/1999/xlink',
  ];
  return namespaces.every(function (value, index, array) {
    return dom.getElementsByTagNameNS(value, 'Dataset').length === 1 ? true : false;
  });
};

Developer Toolsを確認して調査しつつ、lengthが1になるように試行錯誤したところ、以下のようにJavaScriptを修正したら取れるようになった。

var isValidXML = function (dom) {
  var searchElementNSPair = [
    {
      'element': 'Dataset',
      'namespace': 'http://fgd.gsi.go.jp/spec/2008/FGD_GMLSchema',
    },
    {
      'element': 'description',
      'namespace': 'http://www.opengis.net/gml/3.2',
    },
  ];
  var isValid = searchElementNSPair.every(function (value, index, array) {
    return dom.getElementsByTagNameNS(value.namespace, value.element).length === 1 ? true : false;
  });
};