今天的实战案例呢是关于前端解析xml数据
日常为了服务器的尽量把很多任务交个前端处理这样避免的了服务器的CPU使用以及服务器压力和流量所以呢这次我们在解析xml的时候这个任务选放到了前端
xml转字符串
$(function () {
$.get("https://localhost:44396/house.xml", function (data) {
$(data).find('address').find('city').each(function (index, ele) {
var titles = $(ele).find('price').text();
var links = $(ele).find('type').text();
$("#anotherElement").append('<li><a href="' + links + '">' + titles + '</a></li>');
})
});
字符串转xml
//xml字符串
var str = "<DongFang><Company><cNname>cNname1</cNname><cIP>cIP1</cIP></Company><Company><cNname>cNname2</cNname><cIP>cIP2</cIP></Company><Company><cNname>cNname3</cNname><cIP>cIP3</cIP></Company><Company><cNname>cNname4</cNname><cIP>cIP4</cIP></Company><Company><cNname>cNname5</cNname><cIP>cIP5</cIP></Company><Company><cNname>cNname6</cNname><cIP>cIP6</cIP></Company></DongFang>"
var arr = [];
function getXmlNode(str){
//创建文档对象
var parser=new DOMParser();
var xmlDoc=parser.parseFromString(str,"text/xml");
//提取数据---循环每一个Company --或者提取某一个节点比如:cNname
var countrys = xmlDoc.getElementsByTagName('cNname')
for (var i = 0; i < countrys.length; i++) {
//textContent表示将指定节点下面的每一个元素提取出来
console.log(countrys[i]);
arr.push(countrys[i].textContent);
};
console.log(arr);
return arr;
}
//将数据转成json格式
function infoToJson(str){
var s = getXmlNode(str);
console.log(s);
}
infoToJson(str);