Показать сообщение отдельно
  #3 (permalink)  
Старый 29.08.2012, 12:53
Новичок на форуме
Отправить личное сообщение для nevski17 Посмотреть профиль Найти все сообщения от nevski17
 
Регистрация: 29.08.2012
Сообщений: 5

Спасибо, уже разобрался сам, сделал немного по-другому, забросил все данные в один массив. При этом количество столбцов и строк заранее известно.
Ниже приведен пример тестовой версии скрипта, кторый обрабатывает файл с 3мя столбцами и 4мя строками
var XMLFile = new XML();
XMLFile = XMLFile.setContent( "C:\\test1.xml", true );
var XMLSource;
var nodeValue;
var mass = new Array();
var k = 0;

function walkXML( elem )
{
	nodeValue = elem.getNodeValue();
		
	if ( typeof nodeValue == "string" && elem.getName() == "Data" )
	{
		mass.push(nodeValue);
	}
	
	var child = elem.getFirstChildElement();
	while( child != null )
	{
		var nodeName = child.getName();
		var nodeValue = child.getNodeValue();
	walkXML( child );
	child = child.getNextSiblingElement();
	
	}
}

XMLSource = XMLFile;
walkXML( XMLSource );

function insertContact(num,name,stat,ass,comp,assTag,sbType,env,secClass,soxClass,expcClass)
{
	var newCI = new SCFile( "joincomputer" );
	
	newCI.id = num;
	newCI.logical_name = name;
	newCI.istatus = stat;
	newCI.assignment = ass;
	newCI.type = comp;
	newCI.asset_tag = assTag;	
	newCI.subtype = sbType;
	newCI.environment = env;
	newCI.securityClassification = secClass;	
	newCI.soxClassification = soxClass;
	newCI.expcClassification = expcClass;
	
	var rc = newCI.doInsert();
	if ( rc == RC_SUCCESS )
	{
		print( "Success. Created new record " + newCI.getText() );
		return newCI;
	}
	else
	{
		print( "Could not create record. " + RCtoString(rc));
		return null;
	}
}

for(var i=0; i < 12; i++)
{
	var numberValue = "CI99999"+k;
	var lgName = "CompXP"+k;
	var iStat = "Получено";
	var tp = "computer";
	var assign = "Service Desk";
	var assetTag = mass[i];
	var subTyp = mass[i+1];
	var envir = "Test";
	var secClassific = "1. Неограничено";
	var soxClassific = "Critical"
	var expcClassific = mass[i+2];
	var suppGroup = "Service Desk"
	insertContact(numberValue,lgName,iStat,assign,tp,assetTag,subTyp,envir,secClassific,soxClassific,expcClassific); 
	i = i + 2;
	k = k + 1;
}

Последний раз редактировалось nevski17, 04.09.2012 в 11:14. Причина: корректировка кода
Ответить с цитированием