Zitat von
marabu:
Dein
XML-Dokument aus Beitrag #37 wird von meinem Beispiel-Code aus Beitrag #39 problemlos verarbeitet. Ich habe dein Dokument über die Zwischenablage in eine Datei kopiert und von dort zur Laufzeit in ein Memo geladen. Ich übergebe dann Memo.Text anstelle von MARKUP.
Ok, meine Prozedur schaut nun so aus:
Delphi-Quellcode:
procedure Tfrmxml.Button1Click(Sender: TObject);
function CreateDocument(var doc: IXMLDOMDocument2; const markup: string): Boolean;
begin
doc := ComsDOMDocument.Create;
doc.async := False;
Result := doc.loadXML(markup);
end;
const
{ MARKUP
= ''
+ ''
+ ''
+ ''
+ ' '
;}
XPATH = '//Basket[%d]/@path';
var
anzahl: integer;
i: integer;
doc: IXMLDOMDocument2;
n: IXMLDOMNode;
MARKUP : string;
begin
MARKUP := memo1.text;
if CreateDocument(doc, MARKUP) then
begin
n := doc.selectSingleNode(Format(XPATH, [1]));
ShowMessage(VarToStr(n.nodeValue));
n.nodeValue := ExtractFilePath(ParamStr(0));
ShowMessage(doc.xml);
end else ShowMessage(doc.parseError.reason);
{ XMLDocument1.LoadFromFile(getpath+'test.xml');
if xmldocument1.DocumentElement.NodeName='Baskets' then
begin
anzahl:=XMLDocument1.DocumentElement.Attributes['totalNumber'];
for i := 0 to anzahl-1 do
begin
showmessage(XMLDocument1.DocumentElement.ChildNodes.Nodes[i].Attributes['path'])
end;
end;}
end;
Und dabei krieg ich die erwähnte Meldung (im memo1.text ist genau der
XML String drin welcher in Beitrag #37 drin steht... )