![]() |
|
||||||||||
|
|||||
|
.grin! wuz here
|
сделал я большим потом и кровью функцию:
function xml2Object(src) { var xmlObject = {}; var xmlSrc = new XML(); xmlSrc.ignoreWhite = true; xmlSrc.onLoad = function() { xmlObject = parse(xmlSrc.firstChild.firstChild, xmlObject); xmlObject._src = src; if (xmlSrc.firstChild.nodeName != null) { xmlObject._fcname = xmlSrc.firstChild.nodeName; } if (xmlSrc.firstChild.nodeValue != null) { xmlObject._fcvalue = xmlSrc.firstChild.nodeValue; } if (xmlSrc.firstChild.attributes != null) { xmlObject._fcattributes = new Array(); for (var i in xmlSrc.firstChild.attributes) { xmlObject._fcattributes[i] = xmlSrc.firstChild.attributes[i]; //trace("!!!"+xmlObject._fcattributes[i]); } } //trace(xmlSrc.firstChild.firstChild.nodeType) }; xmlSrc.load(""+src); return xmlObject; } function parse(foo, obj) { var ind; var nName = foo.nodeName.toLowerCase(); var nVal = foo.nodeValue.toLowerCase(); var nAttr = foo.attributes; trace("<"+nName+">-<"+nVal+">-<"+nAttr["attr"]+">"); if (nName != null) { if (obj[nName] != null) { ind = obj[nName].length; obj[nName] = obj[nName].concat({}); trace("<"+nName+">"+obj[nName].length) } else { ind = 0; obj[nName] = [{}]; //trace("<"+nName+">"+obj[nName].length) } } if (foo.nVal != null) { obj[nName][ind]._value = nVal.toString(); //trace(obj[foo.nodeName][ind]._value); } obj[nName][ind]._attributes = []; for (var klop in nAttr) { obj[nName][ind]._attributes[klop] = nAttr[klop].toString(); //trace(obj[foo.nodeName][ind]._attributes[klop]) } if (foo.firstChild != null) { obj[nName][ind] = parse(foo.firstChild, obj[nName][ind]); //trace("obj["+foo.nodeName+"]["+ind+"]") } if (foo.nextSibling != null) { obj[nName][ind] = parse(foo.nextSibling, obj[nName][ind]); } return obj; } var folio = xml2Object("portfolio.xml"); if (folio != null) { trace("_value = "+folio._fcattributes[df]); } _______________________ XML такой: <fst df="dfgdfg"> <item attr="some kind of attribute" attr2="some kind of attribute #2"> <image attr2="It's workin, but badly..."/> <image attr2="It's workin!!!"/> <txt>dfbgdfg</txt> </item> <item attr="some kind of"><txt>1111</txt></item> </fst> _______________________ Но не работает - не увеличивает переменную ind. Крови испорчено - море. помогите, плз. исходник приаттачен.
__________________
Breakcore them all! |
![]() |
Часовой пояс GMT +4, время: 11:53. |
|
|
« Предыдущая тема | Следующая тема » |
|
|