Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Создать XML-документ на Delphi

Автор: kruzenvax
Дата сообщения: 14.01.2003 23:54
Народ,

А не поможет ли-кто - куском кода, просто опианием и т.д.? Задача - имеется DTD, надо на Delphi создать новый документ. Весь проект на Java, спецов по Delphi нет, нужна маленькая программка... С помощью всяких TXMLNode, TXMLDocument (и какой-то матери документ прочесть удается.... а создать новый - никак!

Спасибо.
Автор: Key_Sansa
Дата сообщения: 15.01.2003 14:48
Зайди на torry.ru и введи в поиск XML. Столько повываливается...
Автор: Guderian
Дата сообщения: 16.01.2003 16:14
Лучше всего задействовать msxml. Берешь, грузишь в дельфи dll от него (например, msxml4.dll от MSXML4), сохраняешь. Получаешь что-то вроде msxml2_tlb. uses его в дельфийской программе. Создаешь экземпляр и вперед


Код:
var
doc: IXMLDomDocument2;
...
begin
doc := CoDOMDocument40.Create;
Автор: merlkerry
Дата сообщения: 16.01.2003 18:55
Guderian

Цитата:
Лучше всего задействовать msxml. Берешь, грузишь в дельфи dll от него (например, msxml4.dll от MSXML4), сохраняешь. Получаешь что-то вроде msxml2_tlb


по моему это худший из возможных вариантов, если уж напрямую использовать интерфейсы от m$, то проще будет прямо на VC++ это вкатать ...

Key_Sansa прав в смысле поиска хорошей доки по имеющимся классам в Delphi
Автор: Guderian
Дата сообщения: 17.01.2003 09:08
merlkerry
Перед тем как делать подобные заявления надо их хотя бы обосновать или попросту оставить свое мнение при себе, если тема не знакома.

Во-первых, то что касается простоты. Мелкомягкие для того и придумывали com как бинарный формат, чтобы все было просто, да еще и откуда угодно, а не только вц++. Могу даже сказать, что гораздо проще это делается в васике, ну и что из этого? Всем на васик переходить? Ладно, привожу пример на c++ и пусть благородный дон в битах, человеко-часах, литрах укажет, чем на вц++ это проще.


Код:
HRESULT hr;
IXMLDOMDocument2 * pXMLDoc = NULL;
hr = CoInitialize(NULL);
hr = CoCreateInstance(CLSID_DOMDocument, NULL, CLSCTX_INPROC_SERVER,
IID_IXMLDOMDocument2, (void**)&pXMLDoc);
Автор: gelios
Дата сообщения: 17.01.2003 09:30
type
TForm1 = class(TForm)
XML: TXMLDocument;
Button1: TButton;
OraSession1: TOraSession;
qry: TOraQuery;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

procedure TForm1.Button1Click(Sender: TObject);
var
Root, Table, Fields: IXMLNode;
i: Integer;
begin
Root := xml.AddChild('Transport');
Root.Attributes['Version'] := 1;
Table := Root.AddChild('Table');
Table.Attributes['Name'] := 'areas_tab';
Fields := Table.AddChild('Fields');
for i:= 0 to qry.FieldCount - 1 do
with Fields.AddChild('Field') do begin
Attributes['name'] := qry.FieldDefs[i].Name;
Attributes['type'] := qry.FieldDefs[i].DataType;
end;
xml.SaveToFile('d:\qq.xml');
end;
Автор: merlkerry
Дата сообщения: 17.01.2003 20:40
Guderian


Цитата:
или попросту оставить свое мнение при себе, если тема не знакома.


Интересно, почему ты начал решать, что мне знакомо, а что нет ???
Правила прочти !!!


Цитата:
Во-первых, то что касается простоты.

То что ты предложил с tlb это как раз и есть врапер к dll. Да, ты прав, что класс TXMLDocument тоже врапер - так зачем же рисовать еще один ???

А я имел ввиду, что если не получается вврапером, так почему бы не попробовать напрямую ... чел и с инфой ознакомиться и примерчики надывает

Против CodeInsight я ничего не имею, но у меня всегда под рукой PSDK от M$
Автор: Guderian
Дата сообщения: 20.01.2003 10:28
merlkerry

Цитата:
Интересно, почему ты начал решать, что мне знакомо, а что нет ??? Правила прочти !!!

"по моему это худший из возможных вариантов" меня сразило наповал. Налицо нарушение правил, поскольку можно придумать вариант гораздо хуже


Цитата:
То что ты предложил с tlb это как раз и есть врапер к dll.

Неее, враппер он инкапсулирует в себя чужую функциональность и выдает тебе ее в нужных дозах. tlb же, она на то и есть type library, сиречь просто интерфейсная часть dll. Никому, скажем, не придет в голову называть windows.h враппером к винде Не нравится наличие tlb - можно сделать через позднее связывание. В этом случае, правда, валом недостатков.


Цитата:
чел и с инфой ознакомиться и примерчики надывает

Так я и хотел посоветовать, чтоб сразу к хорошему привыкал. Поскольку, кто бы ни закидывал меня камнями, но msxml вве-таки на данный момент - лучший как по функциональности, так и по скорости. Да и док по нему в достатке. А что касается TXMLDocument, то борланд имхо его наспех воткнул. Шоб було и на палитре компонент красовалась надпись содержащая в себе три столь популярных в то время буквы да еще и на Х

Страницы: 1

Предыдущая тема: Delphi. Пользователям QuantumGrid 4


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.