|
|
|
|
|
для: elenaki
(26.06.2006 в 14:30)
| | все. разобралась. парсер менять не надо, он хороший :)
просто надо проверять, что у нас - строка или массив,
и по-разному выводить элементы. ура! я теперь такого
понаделаю :) | |
|
|
|
|
|
|
|
для: elenaki
(25.06.2006 в 17:29)
| | а перед этим вот это:
// ================================================================
// every child/children into array
JKL.ParseXML.prototype.setOutputArrayAll = function () {
this.setOutputArray( true);
}
// a child into scalar, children into array
JKL.ParseXML.prototype.setOutputArrayAuto = function () {
this.setOutputArray( null);
}
// every child/children into scalar (first sibiling only)
JKL.ParseXML.prototype.setOutputArrayNever = function () {
this.setOutputArray( false );
}
// specified child/children into array, other child/children into scalar
JKL.ParseXML.prototype.setOutputArrayElements = function ( list ) {
this.setOutputArray( list );
}
|
помогите, а? как сделать, чтоб из строки делал массив из одного элемента, а не массив букв?
сам парсер вот тут: | |
|
|
|
|
|
|
| нашла парсер XML на Java-script. всем довольна, быстро работает, все делает, что надо, только...
если в списке дочерних элементов только один элемент, он не строит массив из одной строки, а делает массив из букв этого элемента. получается вместо одного слова в 7 букв - 7 элементов undefined :(
как бы это исправить? вот тут, кажется, он переделывает элементы XML в массивы и строки:
// specify how to treate child/children into scalar/array
JKL.ParseXML.prototype.setOutputArray = function ( mode ) {
if ( typeof(mode) == "string" ) {
mode = [ mode ]; // string into array
}
if ( mode && typeof(mode) == "object" ) {
if ( mode.length = 0 ) {
mode = false; // false when array == []
} else {
var hash = {};
for( var i=0; i<mode.length; i++ ) {
hash[mode[i]] = true;
}
mode = hash; // array into hashed array
if ( mode["*"] ) {
mode = true; // true when includes "*"
}
}
}
this.usearray = mode;
}
|
| |
|
|
|
|