我有一个包含此值的变量
<AirportCode>LKO</AirportCode> <CityOrAirportName>LUCKNOW AMAUSI</CityOrAirportName> <Country>India</Country> <CountryAbbrviation>IN</CountryAbbrviation> <CountryCode>733</CountryCode> <GMTOffset>-5.5</GMTOffset> <RunwayLengthFeet>7835</RunwayLengthFeet>
如何从中提取国家/地区代码,在本例中为733.国家/地区代码可能不同,因此我需要以某种方式获取CountryCode标记内的值
答案 0 :(得分:3)
您可以通过编程方式创建div
。填充其innerHTML
,然后获取CountryCode
元素。
var data = "<AirportCode>LKO</AirportCode> <CityOrAirportName>LUCKNOW AMAUSI</CityOrAirportName> <Country>India</Country> <CountryAbbrviation>IN</CountryAbbrviation> <CountryCode>733</CountryCode> <GMTOffset>-5.5</GMTOffset> <RunwayLengthFeet>7835</RunwayLengthFeet>";
var div = document.createElement("div");
div.innerHTML = data;
console.log(div.querySelector('CountryCode').textContent);
使用
更好parse XML
var data = "<AirportCode>LKO</AirportCode> <CityOrAirportName>LUCKNOW AMAUSI</CityOrAirportName> <Country>India</Country> <CountryAbbrviation>IN</CountryAbbrviation> <CountryCode>733</CountryCode> <GMTOffset>-5.5</GMTOffset> <RunwayLengthFeet>7835</RunwayLengthFeet>";
var oParser = new DOMParser();
var oDOM = oParser.parseFromString('<root>' + data + '</root>', "text/xml");
console.log(oDOM.querySelector('CountryCode').textContent)
答案 1 :(得分:0)
如果这是您唯一需要的东西,您可以使用XML解析库,或只使用简单的RegExp。
只需使用正则表达式:/<CountryCode>(\d+)<\/CountryCode)/
例如:
var str = '<AirportCode>LKO</AirportCode> <CityOrAirportName>LUCKNOW AMAUSI</CityOrAirportName> <Country>India</Country> <CountryAbbrviation>IN</CountryAbbrviation> <CountryCode>733</CountryCode> <GMTOffset>-5.5</GMTOffset> <RunwayLengthFeet>7835</RunwayLengthFeet>';
function extractCountryCode(xmlStr) {
var matches = xmlStr.match(/<CountryCode>(\d+)<\/CountryCode)/);
if (matches.length == 2) {
return matches[1];
} else {
return null;
}
}
console.log(extractCountryCode(str));
答案 2 :(得分:0)
您可以使用函数indexOf和substring:
(添加了代码段以显示结果)
var data = "<AirportCode>LKO</AirportCode> <CityOrAirportName>LUCKNOW AMAUSI</CityOrAirportName> <Country>India</Country> <CountryAbbrviation>IN</CountryAbbrviation> <CountryCode>733</CountryCode> <GMTOffset>-5.5</GMTOffset> <RunwayLengthFeet>7835</RunwayLengthFeet>";
var index1 = data.indexOf("<CountryCode>") + "<CountryCode>".length;
var index2 = data.indexOf("</CountryCode>");
var code = data.substring(index1, index2);
console.log(code);
添加CountryCode.length是因为方法indexOf将返回第一次出现的文本。
希望得到这个帮助。