Вы можете попытаться найти пустые значения, прежде чем помещать их в массив.
Что-то вроде:
if (xml.firstChild.childNodes[i].firstChild.NodeValue.length > 0) {
// here put the value into your array
}
Используя длину значения, чтобы определить, является ли оно нулевым или нет,смотреть на них как на String, иногда может быть полезно: если его 0, это означает, что в nodeValue не найдено ни одного символа, показывая, что либо узел не существует, либо узел пуст.
Использованиеваш код, вот что я предлагаю (должен быть адаптирован к тому, что вы делаете, не был проверен):
for (i=0; i<myImage.length; i++) {
var nodeName:String = xml.firstChild.childNodes[i].NodeName;
var newNode:Object;
//condition to filter out values
if (nodeName == "value") {
// means that both of the nodes exists and contain a valid value
if (xml.firstChild.childNodes[i].firstChild.NodeValue.length > 0 && xml.firstChild.childNodes[i].childNodes[1].NodeValue.length > 0) {
newNode = new Object();
newNode["file"] = xml.firstChild.childNodes[i].firstChild.NodeValue;
newNode["name"] = xml.firstChild.childNodes[i].childNodes[1].NodeValue;
}
}
if (newNode != null && newNode != undefined) {
img_arr.push(newNode);
}
}