当标签值与使用 JavaScript 的输入匹配时,返回 XML 标签属性
Return XML tag attribute when tag value matches input using JavaScript
我正在使用下面显示的XML代码。 我已经请求并检索了代码。 我需要编写一个函数,它将: 1) 接收输入的代码 2)动态返回数据库中与subnational1-code="US-MI"和标签值"Kent"对应的次国家2代码
<result>
<location country-code="US" subnational1-code="US-TX" subnational2-code="US-TX-263">Kent</location>
<location country-code="US" subnational1-code="US-VA" subnational2-code="US-VA-127">New Kent</location>
<location country-code="US" subnational1-code="US-DE" subnational2-code="US-DE-001">Kent</location>
<location country-code="US" subnational1-code="US-KY" subnational2-code="US-KY-117">Kenton</location>
<location country-code="US" subnational1-code="US-MD" subnational2-code="US-MD-029">Kent</location>
<location country-code="US" subnational1-code="US-MI" subnational2-code="US-MI-081">Kent</location>
<location country-code="US" subnational1-code="US-RI" subnational2-code="US-RI-003">Kent</location>
<location country-code="CA" subnational1-code="CA-NB" subnational2-code="CA-NB-KE">Kent</location>
<location country-code="CA" subnational1-code="CA-ON" subnational2-code="CA-ON-KT">Chatham-Kent</location>
<location country-code="GB" subnational1-code="GB-ENG" subnational2-code="GB-ENG-KEN">Kent</location>
</result>
XML 代码网址。
以下是我过去使用过的代码(getData 工作),或者正在尝试找出。 这不一定必须使用:
var subnational1-code="US-MI";
var subnational2-name="Kent";
var itemList = response.getElementsByTagName("result");
for(i=0;i<itemList.length){
var d = getData(itemList.item(i));
// What code goes here??
// If (subnational2-value==subnational2-name&&subnational1-valuue=="US-MI");
}
function getData(n) {
var d = new Object();
var nodeList = n.childNodes;
for (var j = 0; j < nodeList.length ; j++) {
var node = nodeList.item(j);
d[node.nodeName] = node.firstChild.nodeValue;
} return d;
}
在这种情况下,输出应为:
var output = "US-MI-081";
我非常感谢您的帮助。 +1 和更多任何可以为我提供工作功能的人! 提前感谢!!
不确定这是否完全是您要查找的内容,但这里有一种 javascript 方法来解析它。 希望这对您有用。
var output = "";
var subnational1Code="US-MI";
var subnational2Name="Kent";
var itemList = document.getElementsByTagName("result");
for(var i = 0;i<itemList.length; i++){
var d = getData(itemList.item(i));
for(var k in d)
if (d[k].sub1 === subnational1Code && d[k].value === subnational2Name)
output = d[k].sub2;
}
function getData(n) {
var objArray = new Array();
var nodeList = n.childNodes;
for (var j = 0; j < nodeList.length ; j++) {
var node = nodeList.item(j);
var o = new Object();
o["value"] = node.firstChild.nodeValue;
o["country"] = node.attributes["country-code"].nodeValue;
o["sub1"] = node.attributes["subnational1-code"].nodeValue;
o["sub2"] = node.attributes["subnational2-code"].nodeValue;
objArray.push(o);
} return objArray;
}
// console.log(output); //in case you wanted to debug it
我会使用 XPath 来检索节点。
尝试使用 document.evaluate() 函数:
var xpathResult = document.evaluate("location[@subnational1-code='US-MI' and text() = 'Kent']/@subnational2-code", itemList, null, XPathResult.ANY_TYPE, null);
相关文章:
- jquery从单个和多个标签解析xml
- 当标签值与使用 JavaScript 的输入匹配时,返回 XML 标签属性
- 关于在javascript或jQuery中区分html标签和xml标签
- 如何在JavaScript/extJS中解析带有点的XML标签
- 是否有任何方法从服务器接收数据,并填写html标签(如文本框)与该数据除了使用xml ??如果是,那么怎么做呢?
- jQuery从XML中剥离标签
- 如果xml包含重复(多于一个)标签,如何在json中表示xml
- 将XML文件导入HTML页面,然后我想在导入的XML标签上使用DOM
- 如何在xml中读取标签下另一个标签的属性
- Jquery xml标签是否存在
- jQuery XML解析不能与嵌套标签一起工作
- xml的读取行没有显示标签
- 如何从带有标签的XML文件中获取数据
& lt; !这里[CADTA[文本]]比;& lt; / title - 如何在IE8中使用Jquery解析包含非html标签的XML
- 读取XML文件标签if (resOb.readyState==4)
- 不能使用javascript正则表达式来获取html/xml标签之间的所有内容
- 如何使用标签,如facebook标签FBML,xml模式和javascript
- 在 Blogger XML 文件中使用 javascript 显示帖子的所有标签
- 我可以在xml文件中添加javascript,其中xml文件有
- HTML - XML -跳转到另一个标签/页面元素