Консультация № 116664
02.01.2008, 21:23
0.00 руб.
0 1 1
Здравствуйте уважаемые эксперты !
Помогите пожалуйста: Вопрос по XML. Имеется файл test.xml, его содержание в приложении, объясните пожалуйста как мне прочитать все значения, например только из page id="1", как мне прочитать значение из: page id="2" <t id="1">, как проверить существование какого-то <t id="?"> в page id="?", и как мне точно в таком формате
<t id="ID">TEXT</t>
записать их. С "page" я научился немного, но объясните вышеизложенное , буду очень благодарен !
Это мне нужно т.к. я делаю программу для любимой игры и в будущем пригодится. Вот и приходится надеяться на помощь знающих людей, ведь мир не без добрых людей ! Помогите, пожалуйста...
Очень хотелось бы с примерами.

Приложение:
<?xml version="1.0" encoding="UTF-8" ?><language id="7"><page id="1" title="test str 17" descr="no"> <t id="1">test1</t> <t id="2">test2</t> <t id="3">test3</t> <t id="4">test4</t></page><page id="2" title="test str 2" descr="no"> <t id="1">test5</t> <t id="2">test6</t> <t id="3">test7</t></page></language>

Обсуждение

Неизвестный
03.01.2008, 19:42
общий
это ответ
Здравствуйте, Sovin Oleg Alexeewith!

Вот так однако можно читать при вашем формате

uses XMLDoc, XMLdom, XMLIntf;
var AXML : TXMLDocument; ABaseNode : IXMLNode;
begin
try
AXML := TXMLDocument.Create(Self);
AXML.FileName := AFileName;
AXML.Active := True;
ABaseNode := AXML.ChildNodes.FindNode(‘language‘);

if Assigned(AbaseNode) then
for i := 0 to ABaseNode.ChildNodes.Count-1 do
if ABaseNode.ChildNodes[i].ChildNodes[‘id‘].NodeValue = 1
then ДелаемЧтоНадо;

except
ShowMessage(Format(‘Error in parse file: "%s"‘, [AFileName]));
end;

AXML.Free;
end;

Проверять на наличие можно через такое же сравнение на ChildNodes[‘id‘].NodeValue = 1 только уже от следуещего уровня "детей".

Писать, говорят, тоже как-то через TXMLDocument можно. Посмотрите все методы данного объекта.

P.S. На практике простой Writeln в текстовый файл меня всегда отлично устраивал при формировании XML (обычно сам генерю XML файлы, чужие не трогал на запись).
Форма ответа