|
v7: Чтение из XML шаблона и запись в XML | ☑ | ||
---|---|---|---|---|
0
D_Pavel
12.03.12
✎
11:19
|
Есть шаблон типа:
<Документ> <Реквизит/> <Строка> <Реквизит/> <Реквизит/> <Реквизит/> </Строка> <Документ> Нужно получить выходной файл по этому шаблону но с несноклькими строками, типа: <Документ> <Реквизит/> <Строка> <Реквизит/> <Реквизит/> <Реквизит/> </Строка> <Строка> <Реквизит/> <Реквизит/> <Реквизит/> </Строка> <Документ> Делаю так: ОбъектXML2 = СоздатьОбъект("Msxml2.DOMDocument.4.0"); ОбъектXML2.Load(ИмяШаблона); узелДокумент = ОбъектXML2.selectSingleNode("//Документ"); узелСтрока = узелДокумент.selectSingleNode("//Строка"); узелДокумент.appendChild(узелСтрока); узелДокумент.appendChild(узелСтрока); узелДокумент.appendChild(узелСтрока); узелДокумент.appendChild(узелСтрока); Но не получается сделать выходной файл с несколькими строками заполненными реквизитами, делается только одна строка с реквизитами. Но если вместо: узелСтрока = узелДокумент.selectSingleNode("//Строка"); делать так: узелСтрока = ОбъектXML2.CreateNode("Строка"); узелДокумент.appendChild(узелСтрока); То создаются строки без реквизитов. Как проще всего создать несколько строк с реквизитами, используя шаблон? |
|||
1
Ёпрст
12.03.12
✎
11:50
|
||||
2
Ёпрст
12.03.12
✎
11:59
|
||||
3
D_Pavel
12.03.12
✎
12:40
|
(1) Спасибо. Сделал через cloneNode
|
|||
4
andrewks
12.03.12
✎
13:05
|
(3) не нужно тут никаких cloneNode. ты в (0) тупо несколько раз вставляешь один и тот же объект, поэтому он у тебя и один. логично, не правда ли?
|
|||
5
D_Pavel
12.03.12
✎
13:11
|
(4) Почему тогда cloneNode не нужно? Делаю копию и вставляю. логично, не правда ли?
|
|||
6
andrewks
12.03.12
✎
13:13
|
(5) не, ну понятно, что можно по-разному делать.
непонятно, чем createElement() не угодил |
|||
7
D_Pavel
12.03.12
✎
13:51
|
(6) Тем что в новом созданном элементе нет дочерних элементов которые есть в исходном элементе.
|
|||
8
andrewks
12.03.12
✎
17:13
|
(7) а-а-а, ясно. лень - великая сила )
|
|||
9
D_Pavel
13.03.12
✎
06:24
|
(8) Если делать оптимально - означает лениво, тогда да: я - самый ленивый человек.
|
|||
10
andrewks
13.03.12
✎
08:20
|
(9) ну, если уж так глубоко смотреть, то использование DOM-модели изначально неоптимально. лучше всего использовать последовательные чтение/запись
|
|||
11
D_Pavel
13.03.12
✎
08:28
|
(10) Что-то ты всё наоборот написал.
|
|||
12
andrewks
13.03.12
✎
09:00
|
(11) не, это не я наоборот написал, это ты наоборот смотришь. оптимально - это не как быстрее и удобней тебе (то бишь программеру), а как быстрее и с оптимальным использованием памяти для ВМ.
скажем так, оправданна оптимизация Время_выполнения Х Используемая_память использование ДОМ-модели, несомненно, очень удобно для программиста, но очень часто проигрывает по времени выполнения прямой записи, и практически всегда - по используемой памяти |
|||
13
D_Pavel
13.03.12
✎
10:46
|
(12) Ты снова не правильно пишешь. Я делаю оптимально в общем, со всех сторон, а не только с точки зрения использования памяти и процессора ЭВМ. Для оценки оптимальности я использую такую формулу:
Время подготовки программы программистом * цена работы программиста + время работы оператора с программой * цена работы оператора. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |