Est tu sur de la sortie que tu veux ?
le xmlns est un peu spécial il me semble, il doit etre suivi d'un ":".
J'ai essayé de remplacer ta ligne
root.SetAttributeNS('xmlns','','test attribut');
par
root.DeclareNamespace('', 'test attribut');
et ca donne le même résultat. Par contre,
root.DeclareNamespace('a', 'test attribut');
ne me rajoute pas l'attribut vide au fils, et me donne ca :
1 2 3 4 5 6
| <?xml version="1.0"?>
<Bikes xmlns:a="test attribut">
<Bike>
<Manufacturer>Honda</Manufacturer>
</Bike>
</Bikes> |
Voici le code que j'ai modifié (notamment la création des enfants):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| procedure TForm1.Button1Click(Sender: TObject);
var
BikeXMLDoc: IXMLDocument;
Root, Bike, Manufacturer : IXMLNode;
i : Integer;
st : string;
begin
// Create XML Document for bikes.xml
BikeXmlDoc := TXMLDocument.Create(nil);
BikeXmlDoc.Active := True;
BikeXmlDoc.Options := BikeXmlDoc.Options + [doNodeAutoIndent];
BikeXmlDoc.Version := '1.0';
// Create Document Root Element
Root := BikeXmlDoc.AddChild('Bikes');
root.DeclareNamespace('a', 'test attribut');
// Create First Bike Node
// Add Required Elements with values for Honda Fireblade 2012
Bike := root.AddChild('Bike');
Manufacturer := Bike.AddChild('Manufacturer');
Manufacturer.Text := 'Honda';
// Save the XML File
//ShowMessage('XML File Created : ' + AppFileLocation + 'bikes.xml');
BikeXmlDoc.SaveToFile('d:\bikes.xml');
BikeXmlDoc.Active := False;
BikeXmlDoc := nil;
end; |
Partager