Javascript 使用带有命名空间别名的GetElementsByTagnames

Javascript 使用带有命名空间别名的GetElementsByTagnames,javascript,google-chrome,xml-parsing,Javascript,Google Chrome,Xml Parsing,是否可以通过传递名称空间别名而不是名称空间uri来使用javascript方法“GetElementsByTagnames” 我正在解析多个XML文档,并在javascript中搜索具有不同名称空间的多个标记 我创建了以下与以下内容相关的函数: 在FF和IE中,此函数提供正确的结果,但在Chrome中,传递包含命名空间的标记名时,“getElementsByTagName”方法不返回结果 如果我只搜索“pureTagName”而不考虑“nameSpace”,我会得到太多的结果 正如我在文章中看到

是否可以通过传递名称空间别名而不是名称空间uri来使用javascript方法“GetElementsByTagnames”

我正在解析多个XML文档,并在javascript中搜索具有不同名称空间的多个标记

我创建了以下与以下内容相关的函数:

在FF和IE中,此函数提供正确的结果,但在Chrome中,传递包含命名空间的标记名时,“getElementsByTagName”方法不返回结果

如果我只搜索“pureTagName”而不考虑“nameSpace”,我会得到太多的结果

正如我在文章中看到的,'getElementsByTagNameNS'方法需要名称空间URI,但目前我无法访问URI。通过传递名称空间别名,是否有解决方法或其他方法来使用此方法

编辑:

这是我目前的工作:

function getElementsByTagNameChromeNamespace (xmlNode, tagName) {
    var elementCollection, pureTagName, i, tmpNode, tmpNodeName, resultingCollection;

    // If there is no namespace return normal collection.
    if (tagName.indexOf(':') === -1) {
        return xmlNode.getElementsByTagName(tagName);
    }

    resultingCollection = [];
    pureTagName = tagName.split(':')[1];

    elementCollection = xmlNode.getElementsByTagName(pureTagName);

    for (i = 0; i < elementCollection.length; i++) {
        tmpNode = elementCollection[i];
        tmpNodeName = tmpNode.nodeName;

        if (tmpNodeName === tagName) {
            resultingCollection.push(tmpNode);
        }
    }

    return resultingCollection;
},

function getElementsByTagNameCrossBrowser (xmlNode, tagName) {
    var elementCollection;

    elementCollection = xmlNode.getElementsByTagName(tagName);

    if (elementCollection.length === 0) {
        elementCollection = this.getElementsByTagNameChromeNamespace(xmlNode, tagName);
    }

    return elementCollection;
}
函数GetElementsByTagname ChromeNameSpace(xmlNode,标记名){
var elementCollection、pureTagName、i、tmpNode、tmpNodeName、resultingCollection;
//如果没有命名空间,则返回正常集合。
如果(标记名.indexOf(':')=-1){
返回xmlNode.getElementsByTagName(标记名);
}
结果集合=[];
pureTagName=tagName.split(':')[1];
elementCollection=xmlNode.getElementsByTagName(pureTagName);
对于(i=0;i
function getElementsByTagNameChromeNamespace (xmlNode, tagName) {
    var elementCollection, pureTagName, i, tmpNode, tmpNodeName, resultingCollection;

    // If there is no namespace return normal collection.
    if (tagName.indexOf(':') === -1) {
        return xmlNode.getElementsByTagName(tagName);
    }

    resultingCollection = [];
    pureTagName = tagName.split(':')[1];

    elementCollection = xmlNode.getElementsByTagName(pureTagName);

    for (i = 0; i < elementCollection.length; i++) {
        tmpNode = elementCollection[i];
        tmpNodeName = tmpNode.nodeName;

        if (tmpNodeName === tagName) {
            resultingCollection.push(tmpNode);
        }
    }

    return resultingCollection;
},

function getElementsByTagNameCrossBrowser (xmlNode, tagName) {
    var elementCollection;

    elementCollection = xmlNode.getElementsByTagName(tagName);

    if (elementCollection.length === 0) {
        elementCollection = this.getElementsByTagNameChromeNamespace(xmlNode, tagName);
    }

    return elementCollection;
}