Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: MSXML speichert mit tabs statt mit XMLDocument.NodeInden

  Alt 14. Sep 2005, 17:53
Hallo Helmut,

beim MS XML Parser kannst du die TAB substitution so verhindern:

(1) dem documentElement musst du das attribute xml:space="preserve" verpassen:

Code:
<?xml version="1.0" encoding="iso8859-1"?>
<root xml:space="preserve">
...
</root>
(2) vor dem Laden musst du die white space preservation einschalten:

Delphi-Quellcode:
procedure TDemoForm.DemoButtonClick(Sender: TObject);
var
  i: integer;
  doc: IXMLDOMDocument2;
  nl: IXMLDOMNodeList;
  e: IXMLDOMElement;
begin
  doc := CoDomDocument.Create;
  doc.async := false;
  doc.preserveWhiteSpace := true;
  doc.load(XmlEdit.Text);
  nl := doc.SelectNodes('//*');
  for i := 0 to nl.length - 1 do begin
    e := nl.item[i] as IXMLDOMElement;
    e.setAttribute('testattr', 'testvalue');
  end;
  doc.save(XmlEdit.Text);
end;
Zu OpenXML kann vielleicht Bernhard Geyer etwas sagen.

marabu
  Mit Zitat antworten Zitat