Ich habe jetzt mal folgendes gemacht:
Delphi-Quellcode:
procedure TF_Main.bnTestClick(Sender: TObject);
var
Node: IXMLNode;
procedure IterateChilds (ANode:IXMLNode);
var
subnode: IXMLNode;
begin
for var i := 0 to ANode.ChildNodes.Count-1 do begin
subnode := ANode.ChildNodes[i];
if subnode.HasChildNodes then begin
IterateChilds (Subnode);
end else begin
if subnode.Text = '{Betreff}' then begin
subnode.Text := 'Dies ist der neue Betrefftext';
end;
end;
end;
end;
begin
xmldoc.LoadFromFile('D:\Word\document.xml');
xmldoc.Active := True;
for var L := 0 to xmldoc.ChildNodes.Count-1 do begin
node := xmldoc.ChildNodes[L];
if node.HasChildNodes then begin
IterateChilds (node);
end else begin
if node.Text = '{Betreff}' then begin
node.Text := 'Dies ist der neue Betrefftext';
end;
end;
end;
//xmldoc.SaveToStream(ms)
end;
OK, das funktioniert schon mal. Habe als DOMVendor OmniXML angegeben. Gibt es hier evtl. anderweitige Empfehlungen?
Das schreibt Word da rein (Auszug mit"
Hern
Walter Müller
):
Code:
-<w:p w:rsidP="00386E60" w:rsidRDefault="00386E60" w:rsidR="00386E60" w14:textId="77777777" w14:paraId="2B1D1A28">
-<w:pPr>
<w:spacing w:after="0"/>
-<w:rPr>
<w:rFonts w:hAnsi="Arial" w:
ascii="Arial" w:cs="Arial"/>
<w:lang w:val="de-DE"/>
</w:rPr>
</w:pPr>
-<w:r>
-<w:rPr>
<w:rFonts w:hAnsi="Arial" w:
ascii="Arial" w:cs="Arial"/>
<w:lang w:val="de-DE"/>
</w:rPr>
<w:t>Herrn</w:t>
</w:r>
</w:p>
-<w:p w:rsidP="00386E60" w:rsidRDefault="00386E60" w:rsidR="00386E60" w14:textId="77777777" w14:paraId="599B367F">
-<w:pPr>
<w:spacing w:after="0"/>
-<w:rPr>
<w:rFonts w:hAnsi="Arial" w:
ascii="Arial" w:cs="Arial"/>
<w:lang w:val="de-DE"/>
</w:rPr>
</w:pPr>
-<w:r>
-<w:rPr>
<w:rFonts w:hAnsi="Arial" w:
ascii="Arial" w:cs="Arial"/>
<w:lang w:val="de-DE"/>
</w:rPr>
<w:t>Walter Müller</w:t>
</w:r>
</w:p>