<tag1> <dana1>abc</dana1> </tag1> <tag2> <dana1>def</dana1> </tag2> <tag3> <dana1>ghi</dana1> </tag3>
<tag1> <dana1>wartość</dana1> <dana2> <cośtam1 attr="test"> <![CDATA[ <teścik ;))> ]]> </dana2> <dana3 /> </tag1> <tag2 />Format wyjściowy jest konfigurowalny (tekst końca linii, wcięcia, skrócony zapis elementów, pomijanie pustych elementów, itp).
<tag1> <dana1>wartość <dana2> <cośtam1 attr="test"> <![CDATA[ <teścik ;))> ]]> <data>inna wartość </dana2> <data>jeszcze inna wartość <dana3 /> </tag1> <tag2 />
/ZAPIS/ var xml : TpkXML; begin xml := TpkXML.Create; try // wszystkie poniższe node "costam" odwołują się do jednego // elementu xml.NodeByName('costam').Value := 'TEST'; xml.NodeByName('costam').AttrByName('id').Value := '1'; xml.NodeByName('costam').NodeByName('pole1').Value := 'xyz'; xml.NodeByName('costam').NodeByName('pole2').Value := 'xyz2'; // albo szybciej (nie sprawdza czy node już jest) with xml.Append('costam2') do begin Append('costam').ValueInt := 1; Append('costam').ValueBool := false; // utworzy drugi node // o nazwie "costam" Append('costam innego').ValueExt := 1.6; end; xml.unicode := true; // wymuszam użycie unicode xml.SaveToFile('c: est.xml'); finally xml.free; end; /ODCZYT/ var xml : TpkXML; i : Integer; begin xml := TpkXML.Create; try xml.LoadFromFile('c: est.xml'); // xml.unicode zawiera informacje czy to unicode czy nie i := xml.NodeByName('costam').GetValueIntDf(0)); ShowMessage(xml.NodeByAttr('costam').NodeByAttr('pol2').Value); ShowMessage(xml.NodeByAttr('costam', ['id'], ['1']).Value); finally xml.free; end;