Difference between revisions of "LMDXML Tutorial"

From LMD
Jump to: navigation, search
 
m (LMDXML moved to LMDXML Tutorial)
(No difference)

Revision as of 17:16, 21 February 2008

Example 1. Creating and saving document

<delphi>

var
  aDoc: ILMDXmlDocument;
  anElem: ILMDXmlElement;
begin
  // Create empty XML document with root element 'base'
  aDoc := LMDCreateXmlDocument('base');
  // Create 'elem1' element and add it as child node for root element
  anElem := aDoc.DocumentElement.AppendElement('elem1');
  // Add 'a1' and 'a2' attributes to 'elem1'
  anElem.SetAttr('a1', 'elem1 a1');
  anElem.SetAttr('a2', 'elem1 a2');
  // Add another element 'elem2'
  anElem := aDoc.DocumentElement.AppendElement('elem');
  anElem.SetAttr('a1', 'elem2 a1');
  anElem.SetAttr('a2', 'elem2 a2');
  // Save document to file
  aDoc.Save('Test.xml');
end;

</delphi>

There is content of saved file: <xml>

<?xml version="1.0" encoding="windows-1251"?>
<base>
  <elem1 a1="elem1 a1" a2="elem1 a2"/>
  <elem2 a1="elem2 a1" a2="elem2 a2"/>
</base>

</xml>

Example 2. Reading and analyzing documents

External xml file to parse. Test.xml <xml>

<?xml version="1.0" encoding="window-1251"?>
<root>
  <elem1 a1="v1" a2="v2"> 1</elem1>
  <elem2 a1="v1" a2="v2"> 2</elem2>
</root>

</xml>

Delphi code <delphi>

var
  aDoc: ILMDXmlDocument;
  anElem2: ILMDXmlNode;
begin
  // Create empty XML document 
  aDoc := LMDCreateXmlDocument;
  // Read content from file
  aDoc.Load('Test.xml');
  // Show in Memo1 full text of xml that we read above
  Memo1.Lines.Text := aDoc.Xml;
  Memo1.Lines.Add('------------------------');
  // Search element with tag 'elem2'
  anElem2 := aDoc.DocumentElement.SelectSingleNode('elem2');
  // Show in Memo1 XML-text anElem2
  Memo1.Lines.Add(anElem2.Xml);
  Memo1.Lines.Add('------------------------');
  // Show in Memo1 value of 'a2' attribute from anElem2 element
  Memo1.Lines.Add(anElem2.GetAttr('a2'));
end;

</delphi>