Update SrcJySet.js

pull/1/head
jevons0411 3 years ago
parent 60a73fe4e3
commit 0a5c711660
  1. 151
      SrcJySet.js

@ -1,108 +1,75 @@
//个人学习代码 //个人学习代码
function SRCSet() { function SRCSet() {
let xmlhtml = request('http://f2dcj6.com/sapi?ac=videolist&pg=1&t=3'); let xmlhtml = request('http://f2dcj6.com/sapi?ac=videolist&pg=1&t=3');
function loadXml(str) { function getXmlDocumentByXmlString(xmlString) {
if (str == null) { var xmlDoc = null;
return null; if (window.DOMParser) {
} var parser = new DOMParser();
var doc = str; xmlDoc = parser.parseFromString(xmlString, "text/xml");
try{ } else {
doc = createXMLDOM(); //IE
doc.async = false; xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
doc.loadXML(str); xmlDoc.async = "false";
}catch(e){ xmlDoc.loadXML(xmlString);
doc = $.parseXML(str);
} }
return doc; return xmlDoc;
} }
//xml数据转成json对象的数据 function convertToJSON(xmlDoc) {
function xmlTojson(xmlObj, nodename, isarray){ //准备JSON字符串和缓存(提升性能)
var obj = $(xmlObj); var jsonStr = "";
var itemobj = {}; var buffer = new Array();
var nodenames = "";
var getAllAttrs = function(node){//递归解析xml 转换成json对象 buffer.push("{");
var _itemobj = {}; //获取xml文档的所有子节点
var notNull = false; var nodeList = xmlDoc.childNodes;
var nodechilds = node.childNodes;
var childlenght = nodechilds.length; generate(nodeList);
var _attrs = node.attributes;
var firstnodeName = "#text"; /**
try{ * 中间函数用于递归解析xml文档对象并附加到json字符串中
firstnodeName = nodechilds[0].nodeName; * @param node_list xml文档的的nodeList
}catch(e){ */
} function generate(node_list) {
if((childlenght > 0 && firstnodeName != "#text") || _attrs.length > 0){
var _childs = nodechilds; for (var i = 0; i < node_list.length; i++) {
var _childslength = nodechilds.length; var curr_node = node_list[i];
var _fileName_ = ""; //忽略子节点中的换行和空格
if(undefined != _attrs){ if (curr_node.nodeType == 3) {
var _attrslength = _attrs.length; continue;
for(var i = 0; i < _attrslength; i++){//解析xml节点属性
var attrname = _attrs[i].nodeName;
var attrvalue = _attrs[i].nodeValue;
_itemobj[attrname] = attrvalue;
}
} }
for (var j = 0; j < _childslength; j++) {//解析xml子节点 //如果子节点还包括子节点,则继续进行遍历
var _node = _childs[j]; if (curr_node.childNodes.length > 1) {
var _fildName = _node.nodeName; buffer.push("\"" + curr_node.nodeName + "\": {");
if("#text" == _fildName){break;}; generate(curr_node.childNodes);
if(_itemobj[_fildName] != undefined){//如果有重复的节点需要转为数组格式 } else {
if(!(_itemobj[_fildName] instanceof Array)){ var firstChild = curr_node.childNodes[0];
var a = _itemobj[_fildName];
_itemobj[_fildName] = [a];//如果该节点出现大于一个的情况 把第一个的值存放到数组中 if (firstChild != null) {
} //nodeValue不为null
} buffer.push("\"" + curr_node.nodeName + "\":\"" + firstChild.nodeValue + "\"");
var _fildValue = getAllAttrs(_node); } else {
try{ //nodeValue为null
_itemobj[_fildName].push(_fildValue); buffer.push("\"" + curr_node.nodeName + "\":\"\"");
}catch(e){
_itemobj[_fildName] = _fildValue;
_itemobj["length"] = 1;
} }
} }
}else{ if (i < (node_list.length - 2)) {
_itemobj = (node.textContent == undefined) ? node.text : node.textContent; buffer.push(",");
} } else {
return _itemobj; break;
};
if(nodename){
nodenames = nodename.split("/")
}
for(var i = 0;i < nodenames.length; i++){
obj = obj.find(nodenames[i]);
}
$(obj).each(function(key, item){
if(itemobj[item.nodeName] != undefined){
if(!(itemobj[item.nodeName] instanceof Array)){
var a = itemobj[item.nodeName];
itemobj[item.nodeName] = [a];
}
itemobj[item.nodeName].push(getAllAttrs(item));
}else{
if(nodenames.length > 0){
itemobj[item.nodeName] = getAllAttrs(item);
}else{
itemobj[item.firstChild.nodeName] = getAllAttrs(item.firstChild);
} }
} }
}); //添加末尾的"}"
buffer.push("}");
if(nodenames.length > 1){
itemobj = itemobj[nodenames[nodenames.length-1]];
} }
if(isarray && !(itemobj instanceof Array) && itemobj != undefined){
itemobj = [itemobj]; jsonStr = buffer.join("");
} return jsonStr;
return itemobj;
} }
var xmlObj = loadXml(xmlhtml); let xmljosn = convertToJSON(getXmlDocumentByXmlString(xmlhtml));
var jsonData = xmlTojson(xmlObj, 'userList/user', true); log(xmljosn);
log(jsonData)
addListener("onClose", $.toString(() => { addListener("onClose", $.toString(() => {

Loading…
Cancel
Save