|
Помогите написать скрипт создания файла xml. | ☑ | ||
---|---|---|---|---|
0
Нооф-Нооф
21.09.14
✎
12:23
|
Нужно генерировать файл xml подобного типа:
<?xml version="1.0" encoding="UTF-8"?> <run modifyTime="20140921105050"/> где "20140921105050" - текущая дата нашел такой пример <html> <head> <title>Создание фала</title> <script> function newf() { var fso, tf; fso = new ActiveXObject("Scripting.FileSystemObject"); tf = fso.CreateTextFile("c:\\test.txt", true); // Вставка строки с переносом на новую. tf.WriteLine("Testing 1, 2, 3.") ; // Вставка 3 путых строк. tf.WriteBlankLines(3) ; // Вставка новой строки, без переноса. tf.Write ("This is a test."); // Закрытие файла. tf.Close(); } </script> </head> <body> Вы должны разрешить запуск данного скрипта<br><br> Щелкните <a href="javascript:newf()">здесь</a>, чтобы создать файл c:\test.txt.<br><br> </body> </html> открываю в браузере, нажимаю - ничего не происходит... да и хотелось бы что-то типа файла vbs - чтобы нажал - и файлик создался... |
|||
1
ДенисЧ
21.09.14
✎
12:27
|
var fso, tf
fso = new ActiveXObject("Scripting.FileSystemObject") tf = fso.CreateTextFile("c:\\test.txt", true) // Вставка строки с переносом на новую. tf.WriteLine("Testing 1, 2, 3.") // Вставка 3 путых строк. tf.WriteBlankLines(3) // Вставка новой строки, без переноса. tf.Write ("This is a test.") // Закрытие файла. tf.Close() клацнул в проводнике - молча создался файл. ЧЯДНТ? Да, я ему дал расширение js |
|||
2
Нооф-Нооф
21.09.14
✎
12:31
|
(1) сделал файл js, скопировал текст из (1) - при выполнении ругается на строку 1, позицию 8 - ожидается ";"
|
|||
3
kokamoonga
21.09.14
✎
12:46
|
(2) ты не поверишь...
(1) то, что отдельные интерпретаторы позволяют не ставить ";" в конце строк, еще не повод для подобного написания. |
|||
4
Нооф-Нооф
21.09.14
✎
12:48
|
(3) понял к чему ты. но такой вариант выдает ту же ошибку
var fso; var tf; fso = new ActiveXObject("Scripting.FileSystemObject"); tf = fso.CreateTextFile("c:\\test.txt", true); // Вставка строки с переносом на новую. tf.WriteLine("Testing 1, 2, 3."); // Вставка 3 путых строк. tf.WriteBlankLines(3); // Вставка новой строки, без переноса. tf.Write ("This is a test."); // Закрытие файла. tf.Close(); |
|||
5
kokamoonga
21.09.14
✎
12:56
|
(4) что-то ты не договариваешь
|
|||
6
Нооф-Нооф
21.09.14
✎
13:14
|
(5) скопировал текст из своего js
|
|||
7
spectre1978
21.09.14
✎
13:17
|
(0) На жабаскрипте нет, есть на VBS. Ну, если захочешь - адаптируешь:
[CODE] Sub SetAttr (Node, Name, Value) if not IsNull (Value) then Node.setAttribute Name, Value end if End Sub ... Set xmlDoc = CreateObject ("MSXML2.DomDocument") MainNode = "<?xml version=""1.0"" encoding=""windows-1251"" standalone=""yes"" ?> <XML> </XML>" xmlDoc.loadXML MainNode ... Set nContractor = xmlDoc.documentElement.appendChild _ (xmlDoc.createElement("Контрагент")) setAttr nContractor, "Наименование", rs.Fields.Item ("SHORTNAME").Value setAttr nContractor, "ПолнНаименование", rs.Fields.Item ("FULLNAME").Value setAttr nContractor, "ИНН", rs.Fields.Item ("INN").Value ... xmlDoc.save "Conts.XML" [/CODE] |
|||
8
Нооф-Нооф
21.09.14
✎
13:20
|
(7) хм... чувствую "как есть" этот файл использовать нельзя и нужно менять под свою ситуацию? а можно готовый пример попроще? допустим с созданием одной строки в этом хмл?
|
|||
9
spectre1978
21.09.14
✎
13:22
|
Ща
|
|||
10
spectre1978
21.09.14
✎
13:28
|
Set xmlDoc = CreateObject ("MSXML2.DomDocument")
MainNode = "<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes"" ?> <XML> </XML>" xmlDoc.loadXML MainNode Set nContractor = xmlDoc.documentElement.appendChild (xmlDoc.createElement("Узел")) nContractor.setAttribute "Атрибут1", "ЗначениеАтрибута1" xmlDoc.save "TestFile.XML" Если вот это дело сохранить как 1.vbs и запустить, то в том же каталоге создастся файл TestFile.XML вот такого вида: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <XML> <Узел Атрибут1="ЗначениеАтрибута1"/> </XML> |
|||
11
Нооф-Нооф
21.09.14
✎
13:32
|
создал файл *.vbs, запихнул в него через блокнот следуюищй тект:
Set xmlDoc = CreateObject ("MSXML2.DomDocument") MainNode = "<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes"" ?> <XML> </XML>" xmlDoc.loadXML MainNode Set nContractor = xmlDoc.documentElement.appendChild (xmlDoc.createElement("Узел")) nContractor.setAttribute "Атрибут1", "ЗначениеАтрибута1" xmlDoc.save "TestFile.XML" при запуске ругается на 1,1 - invalid character похоже туплю жестко... |
|||
12
spectre1978
21.09.14
✎
13:38
|
(11) сочувствую, но делаю ровно то же - и у меня не ругается.
Правда я не создавал файл, а запустил пустой блокнот, скопировал туда текст и сохранил файл как 1.vbs, тип "Текстовые файлы". |
|||
13
kokamoonga
21.09.14
✎
13:56
|
(6) скопировал текст отсюда, запустил, все работает как должно. XP в виртуалке если чо.
|
|||
14
Лефмихалыч
21.09.14
✎
14:07
|
Set xmlDoc = CreateObject("Microsoft.XMLDOM")
Set objRoot = xmlDoc.createElement("run") objRoot.setAttribute("modifyTime", "20140921105050"); xmlDoc.appendChild objRoot |
|||
15
ДенисЧ
21.09.14
✎
14:07
|
(2) C:\>del *.js
C:\>del tes*.* C:\>dir test.txt Том в устройстве C не имеет метки. Серийный номер тома: 24A6-40AF Содержимое папки C:\ Файл не найден C:\>copy con 22.js var fso, tf fso = new ActiveXObject("Scripting.FileSystemObject") tf = fso.CreateTextFile("c:\\test.txt", true) // Вставка строки с переносом на новую. tf.WriteLine("Testing 1, 2, 3.") // Вставка 3 путых строк. tf.WriteBlankLines(3) // Вставка новой строки, без переноса. tf.Write ("This is a test.") // Закрытие файла. tf.Close() ^Z Скопировано файлов: 1. C:\>start 22.js C:\>dir test.txt Том в устройстве C не имеет метки. Серийный номер тома: 24A6-40AF Содержимое папки C:\ 21.09.2014 14:07 39 test.txt 1 файлов 39 байт 0 папок 66 697 248 768 байт свободно C:\>type test.txt Testing 1, 2, 3. This is a test. C:\>ver Microsoft Windows [Version 6.1.7601] C:\> |
|||
16
Нооф-Нооф
21.09.14
✎
14:56
|
бьюсь головой о стену...
файл 22.js, содержание: var fso, tf; fso = new ActiveXObject("Scripting.FileSystemObject"); tf = fso.CreateTextFile("c:\skyppe\test.txt", true); tf.WriteLine("Testing 1, 2, 3.") tf.WriteBlankLines(3) tf.Write ("This is a test.") tf.Close() при запуске - строка3, позиция 1 - bad file name or number |
|||
17
kokamoonga
21.09.14
✎
14:59
|
(16) слеши экранируй
skyppe это не ошибка? |
|||
18
Нооф-Нооф
21.09.14
✎
15:02
|
пробовал c:\skyppe\test.txt, c:\\skyppe\test.txt, c:/skyppe/test.txt, c://skyppe/test.txt
skyppe - да, так папка называется |
|||
19
User_Agronom
21.09.14
✎
15:03
|
(15) C:\>copy con 22.js
Конгениально. Неужели Windows не имеет с своём составе приемлемого нормального примитивного текстового редактора? |
|||
20
ДенисЧ
21.09.14
✎
15:06
|
(19) а зачем париться, если мне нужно было показать полный лог действий?
|
|||
21
Нооф-Нооф
21.09.14
✎
15:06
|
мда...
стремно чувствовать себя неучем в элементарных вопросах... |
|||
22
Нооф-Нооф
21.09.14
✎
16:32
|
кому интересно, в итоге победил таким батником...
@echo off echo ^<?xml version="1.0" encoding="UTF-8"?^> > test.xml set D=%DATE% set T=%TIME% set DT=%D:~6,4%%D:~3,2%%D:~0,2%%T:~0,2%%T:~3,2%%T:~6,2% echo ^<run modifyTime="%DT%"/^> >>test.xml copy test.xml C:\ |
|||
23
kokamoonga
21.09.14
✎
17:15
|
(18) >>> c:\\skyppe\test.txt
Слеши во множественном числе. |
|||
24
ivanov-i-i
21.09.14
✎
17:25
|
(22) Сам победил? http://forum.infostart.ru/forum26/topic117137/
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |