Einzelnen Beitrag anzeigen

Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.538 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Platzhalter in XML-Datei durch (mehrzeiligen) Text ersetzen

  Alt 16. Feb 2021, 18:01
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>

Geändert von Harry Stahl (16. Feb 2021 um 18:17 Uhr)
  Mit Zitat antworten Zitat