Javascript 使用带有命名空间别名的GetElementsByTagnames
是否可以通过传递名称空间别名而不是名称空间uri来使用javascript方法“GetElementsByTagnames” 我正在解析多个XML文档,并在javascript中搜索具有不同名称空间的多个标记 我创建了以下与以下内容相关的函数: 在FF和IE中,此函数提供正确的结果,但在Chrome中,传递包含命名空间的标记名时,“getElementsByTagName”方法不返回结果 如果我只搜索“pureTagName”而不考虑“nameSpace”,我会得到太多的结果 正如我在文章中看到的,'getElementsByTagNameNS'方法需要名称空间URI,但目前我无法访问URI。通过传递名称空间别名,是否有解决方法或其他方法来使用此方法 编辑: 这是我目前的工作:Javascript 使用带有命名空间别名的GetElementsByTagnames,javascript,google-chrome,xml-parsing,Javascript,Google Chrome,Xml Parsing,是否可以通过传递名称空间别名而不是名称空间uri来使用javascript方法“GetElementsByTagnames” 我正在解析多个XML文档,并在javascript中搜索具有不同名称空间的多个标记 我创建了以下与以下内容相关的函数: 在FF和IE中,此函数提供正确的结果,但在Chrome中,传递包含命名空间的标记名时,“getElementsByTagName”方法不返回结果 如果我只搜索“pureTagName”而不考虑“nameSpace”,我会得到太多的结果 正如我在文章中看到
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;
}