Гость
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / jscript. Перенос части содержимого файла в другой файл / 15 сообщений из 15, страница 1 из 1
26.06.2010, 20:24
    #36709821
worsvch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jscript. Перенос части содержимого файла в другой файл
Уважаемые эксперты, пытаюсь скопировать содержимое файла Users.xml между тэгов <users></users> в файл data.xml, но вылетает ошибка "Ввод данных за пределами файла". Ума не приложу, в чем ошибка. Помогите, пожалуйста, разобраться, очень надо

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
var fso = WScript.createObject("Scripting.FileSystemObject");
var xml1 = WScript.createObject("Scripting.FileSystemObject");
var xml2 = WScript.createObject("Scripting.FileSystemObject");

var dir = WScript.createObject("WScript.Shell");
var curdir = dir.currentDirectory + "\\";
var fld = fso.getFolder(curdir);

var file1 = "Users.xml";
var file2 = "data.xml";

var xmlfile1 = xml1.openTextFile(fld + "\\" + file1, 1 );
var xmlfile2 = xml2.openTextFile(fld + "\\" + file2, 2 ,true);

var r1 = /<users>/g;
var r2 = /<.users>/g;

var xmldata1, xmldata2, xmldata3;

while (!xmlfile1.atEndOfStream) {
       xmldata1 = xmlfile1.readLine();
       xmldata2 = xmldata1;

       if (r1.test(xmldata1)) {
            while (!r2.test(xmldata1)) {
                 xmldata1 = xmlfile1.skipLine();
            }
       }
       else if (r2.test(xmldata1)) xmlfile1.skipLine();
       else xmlfile2.writeLine(xmldata2);

}

xmlfile2.close();
xmlfile1.close();


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
<?xml version="1.0" encoding="Windows-1251"?>
<domain>
<!-- Руководство -->
 <managers>
  <directors>
   <director>
   <users>
    <user>
     <fio>Иванов Иван Иванович</fio>
     <age> 50 </age>
    </user>
    </users>
   </director>
  </directors>
  <zamy>
   <zam>
   <users>
    <user>
     <fio>Петров Петр Петрович</fio>
     <age> 56 </age>
    </user>
   </users>
   </zam>
   <zam>
   <users>
    <user>
     <fio>Сидоров Сидор Сидорович</fio>
     <age> 47 </age>
    </user>
   </users>
   </zam>
  </zamy>
 </managers>
<!-- Подчиненные -->
 <employees>
  <users><user>Андреев Андрей Андреевич</user></users>
  <users><user>Алексеев Алексей Алексеевич</user></users>
  <users><user>Сергеев Сергей Сергеевич</user></users>
 </employees>
</domain>
...
Рейтинг: 0 / 0
26.06.2010, 20:54
    #36709850
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jscript. Перенос части содержимого файла в другой файл
Есть две мысли. Мысль первая. С XML-файлами нельзя работать как с плоским текстом. Тег users может не обязательно находится в начале строки и вообще как в этом бейсике с проверкой строк, учитываешь ли ты ведущие/хвостовые пробелы хр. зн. И мысль вторая - ты пытаешься читать или skip-ать строки у файла который уже закончился.
...
Рейтинг: 0 / 0
26.06.2010, 21:08
    #36709861
worsvch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jscript. Перенос части содержимого файла в другой файл
maytonЕсть две мысли. Мысль первая. С XML-файлами нельзя работать как с плоским текстом. Тег users может не обязательно находится в начале строки и вообще как в этом бейсике с проверкой строк, учитываешь ли ты ведущие/хвостовые пробелы хр. зн. И мысль вторая - ты пытаешься читать или skip-ать строки у файла который уже закончился.
Я пытался работать с xml с помощью объекта DOMDocument, но так как опыта работы с этим объектом нет, то только запутался
...
Рейтинг: 0 / 0
26.06.2010, 21:12
    #36709863
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jscript. Перенос части содержимого файла в другой файл
worsvch,

распутывайтесь, получайте опыт
...
Рейтинг: 0 / 0
26.06.2010, 21:22
    #36709871
worsvch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jscript. Перенос части содержимого файла в другой файл
Изопропилworsvch,
распутывайтесь, получайте опыт
ясно, но у меня времени один день осталось, иначе проблемы будут. Эти файлы лишь образцы, а реальная программа, которую я делаю примерно на 500 строк уже и должна пакетно обрабатывать в пределах 100 xml-файлов. Все функции работают, кроме самой обработки xml-файла, уже несколько дней борюсь с этим с утра до позднего вечера, но ничего не выходит.
...
Рейтинг: 0 / 0
26.06.2010, 22:06
    #36709895
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jscript. Перенос части содержимого файла в другой файл
worsvchясно, но у меня времени один день осталось, иначе проблемы будут. Эти файлы лишь образцы, а реальная программа, которую я делаю примерно на 500 строк уже и должна пакетно обрабатывать в пределах 100 xml-файлов. Все функции работают, кроме самой обработки xml-файла, уже несколько дней борюсь с этим с утра до позднего вечера, но ничего не выходит.
Твоя задача (подпрограмма) решается c использование XSLT-трансформации документа. Я могу подсказать с написанием XPath запроса на генерацию поддеревьев users. Но по написанию обрамления на VBScript или jscript - это не ко мне (хотя решение очень даже типовое и его copypast-тят все кому не лень).

Попроси модератора перенести твой топик в http://sql.ru/forum/actualtopics.aspx?bid=59.

Там помогут быстрее.
...
Рейтинг: 0 / 0
26.06.2010, 22:12
    #36709904
worsvch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jscript. Перенос части содержимого файла в другой файл
mayton
Я могу подсказать с написанием XPath запроса на генерацию поддеревьев users.
Попроси модератора перенести твой топик в http://sql.ru/forum/actualtopics.aspx?bid=59.

Подскажите, пожалуйста.
А насчет переноса, дак там ветка XML, а у меня проблема с jscript
...
Рейтинг: 0 / 0
26.06.2010, 22:15
    #36709905
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jscript. Перенос части содержимого файла в другой файл
Логика твоей задачи на 95% - состоит в трансформации документа. Или я не правильно понял постановку.
...
Рейтинг: 0 / 0
26.06.2010, 22:18
    #36709910
worsvch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jscript. Перенос части содержимого файла в другой файл
maytonЛогика твоей задачи на 95% - состоит в трансформации документа. Или я не правильно понял постановку.
Правильно. Нужно убрать лишнее из основного документа, но вручную обработать за один день 100 файлов, в каждом из которых по 20000 строк нереально
...
Рейтинг: 0 / 0
26.06.2010, 22:25
    #36709917
worsvch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jscript. Перенос части содержимого файла в другой файл
mayton
Попроси модератора перенести твой топик в http://sql.ru/forum/actualtopics.aspx?bid=59.

А как попросить?
...
Рейтинг: 0 / 0
26.06.2010, 22:50
    #36709927
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jscript. Перенос части содержимого файла в другой файл
http://msdn.microsoft.com/en-us/library/ms766561%28VS.85%29.aspx

пример jscript и трансформации
...
Рейтинг: 0 / 0
26.06.2010, 23:17
    #36709950
worsvch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jscript. Перенос части содержимого файла в другой файл
Изопропил http://msdn.microsoft.com/en-us/library/ms766561%28VS.85%29.aspx

пример jscript и трансформации
Вот такое вместо ожидаемой страницы выходит: "Oops! This page appears broken"
...
Рейтинг: 0 / 0
26.06.2010, 23:19
    #36709952
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jscript. Перенос части содержимого файла в другой файл
Там всё нормально. Пробуй еще.
...
Рейтинг: 0 / 0
26.06.2010, 23:23
    #36709955
worsvch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jscript. Перенос части содержимого файла в другой файл
maytonТам всё нормально. Пробуй еще.
Несколько раз попробовал, не выходит

Модератор: Тема перенесена из форума "Программирование".
...
Рейтинг: 0 / 0
27.06.2010, 14:45
    #36710209
worsvch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jscript. Перенос части содержимого файла в другой файл
Проблема решена с помощью объекта DOMDocument
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / jscript. Перенос части содержимого файла в другой файл / 15 сообщений из 15, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]