powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / jscript. Перенос части содержимого файла в другой файл
15 сообщений из 15, страница 1 из 1
jscript. Перенос части содержимого файла в другой файл
    #36709821
worsvch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые эксперты, пытаюсь скопировать содержимое файла 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
jscript. Перенос части содержимого файла в другой файл
    #36709850
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть две мысли. Мысль первая. С XML-файлами нельзя работать как с плоским текстом. Тег users может не обязательно находится в начале строки и вообще как в этом бейсике с проверкой строк, учитываешь ли ты ведущие/хвостовые пробелы хр. зн. И мысль вторая - ты пытаешься читать или skip-ать строки у файла который уже закончился.
...
Рейтинг: 0 / 0
jscript. Перенос части содержимого файла в другой файл
    #36709861
worsvch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЕсть две мысли. Мысль первая. С XML-файлами нельзя работать как с плоским текстом. Тег users может не обязательно находится в начале строки и вообще как в этом бейсике с проверкой строк, учитываешь ли ты ведущие/хвостовые пробелы хр. зн. И мысль вторая - ты пытаешься читать или skip-ать строки у файла который уже закончился.
Я пытался работать с xml с помощью объекта DOMDocument, но так как опыта работы с этим объектом нет, то только запутался
...
Рейтинг: 0 / 0
jscript. Перенос части содержимого файла в другой файл
    #36709863
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
worsvch,

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

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

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

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

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

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

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

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


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