Einzelnen Beitrag anzeigen

toko

Registriert seit: 19. Apr 2005
40 Beiträge
 
#3

Re: Wie an vorhandenen Knoten neuen Kindknoten anhängen?

  Alt 28. Mai 2005, 23:39
Hallo,

das mit den Attributen habe ich jetzt anders geregelt
XML-Code:
<cdorganizer>
   <cd>
      <cdid>1</cdid>
      <cdtitel>testtitel1</cdtitel>
      <interpret>testinterpret1</interpret>
      <genre>testgenre1</genre>
      <track>
         <trackid>1</trackid>
         <tracktitel>track 1</tracktitel>
         <dauer>3:11:07</dauer>
      </track>
   </cd>
</cdorganizer>
mit
Code:
tracks := XMLDoc.documentElement.selectNodes('cd['+ IntToStr(globAktCDID) +']/track');
bekomme ich die Tracks, aber auch nur weil zufällig die cdid mit der Reihenfolge in der XML-Datei übereinstimmt.
Ich bin in der MSXML-Hilfe nicht fündig geworden, wie ich attribute setzen kann.

Bei
Delphi-Quellcode:
procedure TfrmCD.btnOKClick(Sender: TObject);
var
  newsub,
  newcd : IXMLDOMNode;
  newattribute : IXMLDOMAttribute;
begin
  newattribute := frmMain.xmlDoc.createAttribute('id');
  newattribute.value := '1';
  newcd := frmMain.xmlDoc.createElement('cd').setAttributeNode(newattribute);


  newsub := frmMain.xmlDoc.createElement('cdid');
  newsub.text := IntToStr(frmMain.strgrdCDListe.RowCount);
  newcd.appendChild(newsub);

  newsub := frmMain.xmlDoc.createElement('cdtitel');
  newsub.text := edtTitel.Text;
  newcd.appendChild(newsub);

  newsub := frmMain.xmlDoc.createElement('interpret');
  newsub.text := edtInterpret.Text;
  newcd.appendChild(newsub);

  newsub := frmMain.xmlDoc.createElement('genre');
  newsub.text := edtGenre.Text;
  newcd.appendChild(newsub);

  frmMain.xmlDoc.documentElement.appendChild(newcd);
  frmMain.xmlDoc.save(frmMain.xmlfile);

  close;
end.
bekomme ich eine Exception der Klasse EAccessViolation.
  Mit Zitat antworten Zitat