Опишу чуть-чуть задачу поставленную мне.
Есть WebService в который отправляют xml файл вероятно пока просто в папку кладут, потом вероятно запускается запрос на его обработку
Сам xml файл:
<?xml version="1.0" encoding="UTF-8"?> <ns1:inputRegistry xmlns:ns1="http://xmlns.cits/acc/01/01" xmlns="http://xmlns.cits/acc/01/01"> <ns1:payment> <ns1:SEGMENT2></ns1:SEGMENT2> <ns1:SEGMENT3></ns1:SEGMENT3> <ns1:SEGMENT4></ns1:SEGMENT4> <ns1:ATTRIBUTE1> 2011-03-14T11:55:42</ns1:ATTRIBUTE1> <ns1:ATTRIBUTE2> 2011-03-14T11:55:42</ns1:ATTRIBUTE2> <ns1:ATTRIBUTE31/> <ns1:ATTRIBUTE3></ns1:ATTRIBUTE3> <ns1:ATTRIBUTE4></ns1:ATTRIBUTE4> <ns1:ATTRIBUTE5></ns1:ATTRIBUTE5> <ns1:ATTRIBUTE6></ns1:ATTRIBUTE6> <ns1:ATTRIBUTE8></ns1:ATTRIBUTE8> <ns1:ATTRIBUTE11></ns1:ATTRIBUTE11> <ns1:ENTERED_DR>10000</ns1:ENTERED_DR> <ns1:KEYCODE/> <ns1:VO>7</ns1:VO> </ns1:payment> <ns1:date>2011-03-14T11:55:42</ns1:date> </ns1:inputRegistry>
Листинг скрипта
function Main() { UserForms.RegGen.ShowModal(); } function RegGen_cxButtonGen_OnClick(Sender) { var kno = [101, 301, 3001, 3010, 3020]; var kbk = [104102, 104301, 104302, 104402]; var r2 = Math.floor(Math.random()*((kno.length)-1)); var r4 = Math.floor(Math.random()*((kbk.length)-1)); var seg2 = kno[r2]; var seg4 = kbk[r4]; if (UserForms.RegGen.Segment2Random.Checked) UserForms.RegGen.Segment2.Text(seg2) if (UserForms.RegGen.Segment4Random.Checked) UserForms.RegGen.Segment4.Text(seg4) } function RegGen_cxButtonSave_OnClick(Sender) { var seg2tx = UserForms.RegGen.Segment2.Text; var seg3tx = UserForms.RegGen.CodRadioGroup.Caption; var seg4tx = UserForms.RegGen.Segment4.Text; //var att1tx = UserForms.RegGen.ATTRIBUTE1.Date; var objXML = new ActiveXObject("Microsoft.XMLDOM"); objXML.async = false; objXML.load(XML.XmlRegistry.Document); var segment2 = objXML.selectSingleNode("//ns1:SEGMENT2"); var segment3 = objXML.selectSingleNode("//ns1:SEGMENT3"); var segment4 = objXML.selectSingleNode("//ns1:SEGMENT4"); //var attribute1 = objXML.selectSingleNode("//ns1:ATTRIBUTE1"); segment2.text=seg2tx; segment3.text=seg3tx; segment4.text=seg4tx; //attribute1.text=att1tx; //Log.Message(att1tx) var count = UserForms.RegGen.SpinEditCount.Value; var i = 1; var flname = UserForms.RegGen.FileNameEdit.Text; if (UserForms.RegGen.FileNameEdit.Text != ""){ while (i <= count) { objXML.save("C:\\"+flname+i+".xml") i++; } ShowMessage("Файлы " + flname + i +".xml " + "успешно сохранент") } else ShowMessage("Не введено имя файла"); } function RegGen_cxRadioGroup2_OnChange(Sender) { if (UserForms.RegGen.CodRadioGroup.ItemIndex == 0) UserForms.RegGen.CodRadioGroup.Caption = "000000000" else if (UserForms.RegGen.CodRadioGroup.ItemIndex == 1) UserForms.RegGen.CodRadioGroup.Caption = "019999999" else if (UserForms.RegGen.CodRadioGroup.ItemIndex == 2) UserForms.RegGen.CodRadioGroup.Caption = "021999999" else UserForms.RegGen.CodRadioGroup.Caption = "022999999" } function RegGen_cxButton1_OnClick(Sender) { cDefaultHelloWorldResult = 'Hello World'; //Log.Message("Test of the HelloWorld method."); // Call the HelloWorld method of the tested web service var Str = WebServices.WebService2.HelloWorld(); // Post the results of the call to the log Log.Message("HelloWorld result: " + Str); // Check the results if (Str == cDefaultHelloWorldResult) Log.Message("HelloWorld returned the expected result.") else Log.Error("HelloWorld returned incorrect result."); } function RegGen_cxButton2_OnClick(Sender) { //var res = WebServices.Registry.execute() ////var resultValue = WebServices.Registry.execute(XML.XmlCheckpoint1); //ShowMessage(resultValue); //ShowMessage(res); /* var Str = WebServices.Registry.execute(); Log.Message(Str) if (Str == execute) Log.Message("Ok") else Log.Message("Not"); */ } function RegGen_OnShow(Sender) { //UserForms.RegGen.cxDateEdit1.Date(aqDateTime.Today()); } function RegGen_cxButtonEdit2_OnButtonClick(Sender, AButtonIndex) { UserForms.RegGen.SaveDialog1.Execute(); } function RegGen_FileNameEdit_OnButtonClick(Sender, AButtonIndex) { UserForms.RegGen.SaveDialog1.Execute(); }
Вот сейчас основная проблема это реализовать: если указываем количество n "реестров" напримет: то выходной xml будет имень структуру
<?xml version="1.0" encoding="UTF-8"?> <ns1:inputRegistry xmlns:ns1="http://xmlns.cits/acc/01/01" xmlns="http://xmlns.cits/acc/01/01"> <ns1:payment> <ns1:SEGMENT2></ns1:SEGMENT2> ........................................ <ns1:VO>7</ns1:VO> </ns1:payment> <ns1:date>2011-03-14T11:55:42</ns1:date> </ns1:inputRegistry>Извените за бредовое описание задачи, но я в отчаиние deadline подступает!!