使用javascript的多functionxml属性正则表达式

基本上我有一个xml文档,我对文档的唯一了解是属性名称。

鉴于该信息,我必须找出该属性名称是否存在,如果它存在,我需要知道属性值。

例如:

      

我有名字appincome和sourceid。 有什么价值?

此外,如果文档中有两个appincome属性名称,我也需要知道,但我不需要它们的值,只是存在多个匹配。

正则表达式可能不是最好的工具,特别是如果你的JS在具有XPath支持的相当现代的浏览器中运行。 这个正则表达式应该可行,但如果您没有严格控制文档的内容,请注意误报:

 var match, rx = /\b(appincome|sourceid)\s*=\s*"([^"]*)"/g; while (match = rx.exec(xml)) { // match[1] is the name // match[2] is the value // this loop executes once for each instance of each attribute } 

或者,尝试这个XPath,它不会产生误报:

 var node, nodes = xmldoc.evaluate("//@appincome|//@sourceid", xmldoc, null, XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null); while (node = nodes.iterateNext()) { // node.nodeName is the name // node.nodeValue is the value // this loop executes once for each instance of each attribute }