28.12.2006, 16:35 | #1 |
Участник
|
Выгружаю данные в XML.
Получаю результат - <XML-28.12.06 Заголовок="Navision LOG"> <Record Polzov="sa" Type_Log="REPORT" ReportID="123" DataTime="28.12.06 15:15" /> </XML-28.12.06> Для выгрузки использую 'Microsoft XML, v3.0'. Допустим, через час - возникает необходимость выгрузить еще данные в этот же файл. Тоесть нужно чтобы был такой результат - <XML-28.12.06 Заголовок="Navision LOG"> <Record Polzov="sa" Type_Log="REPORT" ReportID="123" DataTime="28.12.06 15:15" /> <Record Polzov="sa" Type_Log="REPORT" ReportID="12" DataTime="28.12.06 16:15" /> </XML-28.12.06> Вопрос - ест ли возможность добавить строку <Record Polzov="sa" Type_Log="REPORT" ReportID="12" DataTime="28.12.06 16:15" /> внутрь корневого тэга ? |
|
29.12.2006, 10:36 | #2 |
Участник
|
Что-то вроде следующего кода должно быть:
Код: CREATE(xmlDocument); xmlDocument.Load(...); xmlHeader := xmlDocument.documentElement; xmlRecord := xmlDocument.createNode('element','Record',''); xmlHeader.appendChild(xmlRecord); xmlDocument.Save(...); xmlDocument : 'Microsoft XML, version 2.0'.DOMDocument xmlHeader: 'Microsoft XML, version 2.0'.IXMLDOMElement xmlRecord: 'Microsoft XML, version 2.0'.IXMLDOMElement |
|
09.01.2007, 13:28 | #3 |
Участник
|
Спасибо за помощь. Но, все равно не получается - не удается добавить новую запись
Хотя нет. Получилось. Коечто - необходимо изменить - а, вообще принцип оказалсЯ верным. Спасибо !!! |
|
09.10.2007, 11:47 | #4 |
Участник
|
Возник такой вопрос. Используя DOMDocument, получаю нужный мне XML-файл, но там все данные одной строкой. Кто-нибудь знает способ выгружать файл с нормальным форматированием текста через DOMDocument? Иначе при возникновении ситуации, когда нужно найти ошибку в файле и поправить в редакторе, встает проблема.
|
|
09.10.2007, 13:38 | #5 |
Участник
|
Попробуйте использовать XMlShell или программу подобного рода.
|
|
09.10.2007, 14:50 | #6 |
Участник
|
|
|
25.10.2007, 12:37 | #7 |
Участник
|
|
|
29.10.2007, 17:01 | #8 |
Участник
|
Mozno poprobovat' tak:
XMLFile.OPEN(FileName); XMLFile.SEEK(0); XMLFile.CREATEINSTREAM(InBuffer); WITH NewXMLFile DO BEGIN CREATE('c:\navxml.tmp'); CREATEOUTSTREAM(OutBuffer); InBuffer.READTEXT(Buffer,xxx); //xxx - to k-vo simvolov, kot. nuzno ostavit' OutBuffer.WRITETEXT(Buffer); Buffer := '.........'; //svoj text, kot nuzno dobavit' to XML file header OutBuffer.WRITETEXT(Buffer); WHILE XMLFile.POS < XMLFile.LEN DO BEGIN InBuffer.READTEXT(Buffer,1024); OutBuffer.WRITETEXT(Buffer); END; CLOSE; END; XMLFile.CLOSE; ERASE(FileName); RENAME('c:\navxml.tmp',FileName); |
|