webForumDet fria alternativet

Läsa och skriva XML-filer?

Programmering

4 svar · 231 visningar · startad av Bjuufaren

Medlem sedan okt. 2003108 inlägg
Frågan#1

Hej,

Jag är i behov av en komponent som gör det väldigt lätt att läsa och skriva XML-filer från en Delphi-applikation. Gärna så litet och enkelt som möjligt. Ungefär som den här (men gratis): http://www.simdesign.nl/xml.html

Har kollat lite på OpenXML, XMLWorks och nåt annat, men tycker kanske att de är för "avancerade".

Tacksam för all hjälp!

Medlem sedan nov. 2003310 inlägg
#2

I Delphi så finns det stöd för att använda Microsofts XML funktioner så du behöver inte köpa nån tredje parts komponent.
IXMLDom komponenterna följer med Internet Explorer. Tänkt dock på att använda de som följer med IE 5.5 eller senare. De äldre versionerna var ganska buggig. Du kan även ladda ner IXMLDom grejorna separat från Microsoft.

Lägg till MSXML_TLB i uses och det är bara att köra.
Det finns ingen info om IXMLDom grejorna i Delphis hjälp utan du måste använda dig av MSDN.

Nedan har jag skrivit ett par kodexempel som du kan titta på för att komma igång:

Skapa XML

procedure TForm1.Button1Click(Sender: TObject);
var
  aDomDoc: IXMLDomDocument;
  aRootElement, aElement: IXMLDomElement;
begin
  aDomDoc := CoDOMDocument.Create;
  aRootElement := aDomDoc.createElement('ROT');
  aDomDoc.documentElement := aRootElement;

  aElement := aDomDoc.createElement('ELEMENT');
  aElement.setAttribute('namn', 'test');
  aElement.text := 'min text';
  aRootElement.appendChild(aElement);
end;

XMLkoden kommer att se ut så här:
<ROT>
<ELEMENT namn='test'>
min text
</ELEMENT>
</ROT>

Läser in xml gör du enkelt:

  aDomDoc := CoDOMDocument.Create;
  aDomDoc.loadXML(strXML);

För att t.ex. hitta taggar så använder du dig av IXMLDOMDocument.getElementsByTagName() osv.

Hoppas att detta är tillräcklig information för att du ska komma igång.

/Ante

Medlem sedan okt. 2003108 inlägg
#3

Tack för de utförliga instruktionerna!

En fråga dock; är det inte så att man är beroende av att msxml.dll finns på användarens system om man gör så här? Det är kanske inget större problem egentligen, men ändå..

Medlem sedan maj 20018 027 inlägg
#4

Bjuufaren skrev:

En fråga dock; är det inte så att man är beroende av att msxml.dll finns på användarens system om man gör så här? Det är kanske inget större problem egentligen, men ändå..

Om den inte finns där, kan du inkludera den i installationen. Du måste då se till att dll:en registreras i systemet. Men det brukar installationsprogram klara av. Annars kan du registrera den manuellt från kommandoraden genom:

regsvr32 <<sökväg till dll>>

efter att du har kopierat dll:en till rätt plats.

Medlem sedan nov. 2003310 inlägg
#5

Eller så sätter du som installationskrav att användarna ska ha IE 5.5 eller senare installerat.

/Ante S

289 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
161 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)