Текущий архив: 2007.10.21;
Скачать: CL | DM;
ВнизSimpleXML.pas Найти похожие ветки
← →
vladislav_osn (2007-09-23 22:02) [0]Может кто использовал в своих проектах этот модуль?
Не могу понять, как мне дописать данные в уже существующий файл.
Например, это создает файл снова, перезаписывая уже существующий, чем дополнить?:var
Xml: IXmlDocument;
XmlElem0, XmlElem1: IXmlNode;
begin
Xml := CreateXmlDocument("test");
XmlElem0 := Xml.DocumentElement.AppendElement("t1");
XmlElem1 := XmlElem0.AppendElement("t2");
XmlElem1.SetDateTimeAttr("date", Now);
Xml.Save("test_xml.xml");
Попробовал уже все возможные варианты, но так и не смог добиться успеха.
← →
Плохиш © (2007-09-23 23:25) [1]Нет в xml такого понятия, как "дописать в файл". Считываешь файл в IXMLDocument, дополняешь всё, что нужно и записываешь поверх старого.
← →
vladislav_osn (2007-09-24 13:22) [2]Да проблем в том, что бы считать это и потом дополнить. Просто открыть и считать данные - без проблем. А у меня получается открываю, считываю и пытаюсь дополнить -- не получается. Не знаю как это сделать.
Открываю так:var
Xml: IXmlDocument;
XmlElem: IXmlNode;
begin
Xml := CreateXmlDocument;
Xml.Load("test_xml.xml");
if Xml <> nil then
begin
XmlElem := Xml.DocumentElement.SelectSingleNode("t1");
.......
Любые попытки привязать запись к этому коду, не получились.
← →
Галинка © (2007-09-24 17:21) [3]Так узел надо сначала создать. Потом инициализировать, а потом добавить к существующему документу. Что-то типа такого:
function AddNodeToXml(nname, nintext : string; ParentNode : IXmlNode) : boolean
var
XmlDoc: IXmlDocument;
XmlElem : IXmlNode;
begin
XmlDoc := CreateXmlDocument();
XmlDoc.Load("***.***");
try
XmlElem := XmlDoc.CreateElement(nname);
XmlElem.InnerText := nintext;
ParentNode.AppendChild(XmlElem);
Result = true;
except
Result = false;
end;
Result
← →
Галинка © (2007-09-24 17:23) [4]Извиняюсь. Так наверное нагляднее:
function AddNodeToXml(nname, nintext : string; ParentNode : IXmlNode) : boolean
var
XmlDoc: IXmlDocument;
XmlElem : IXmlNode;
begin
XmlDoc := CreateXmlDocument();
XmlDoc.Load("***.***");
try
XmlElem := XmlDoc.CreateElement(nname);
XmlElem.InnerText := nintext;
ParentNode.AppendChild(XmlElem);
Result = true;
except
Result = false;
end;
end;
← →
Плохиш © (2007-09-25 00:08) [5]
> Галинка © (24.09.07 17:23) [4]
Нда, осталось выяснить какое отношение имеет переданный ParentNode к загруженному файлу. Опять мухи и котлеты в одной куче...
Страницы: 1 вся ветка
Текущий архив: 2007.10.21;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.047 c