Sample code for 30+ languages & platforms
Pascal (Lazarus/Delphi)

Drop/Undrop Text Formatting Tags

See more HTML-to-XML/Text Examples

Demonstrates how the DropTextFormattingTags and UndropTextFormattingTags methods work in the Html-to-Xml API.

Chilkat Pascal (Lazarus/Delphi) Downloads

Pascal (Lazarus/Delphi)
program ChilkatDemo;

// Demonstrates using the Chilkat Pascal wrapper via the C bridge DLL.
// Builds as a console application under Lazarus (FPC) or Delphi.

{$IFDEF FPC}
  {$MODE DELPHI}
{$ENDIF}
{$APPTYPE CONSOLE}

uses
  {$IFDEF UNIX}
  cthreads,
  {$ENDIF}
  SysUtils,
  CkDllLoader,
  Chilkat.HtmlToXml;

// ---------------------------------------------------------------------------

procedure RunDemo;
var
  html: string;
  h2x: THtmlToXml;

begin
  //  This example assumes the Chilkat API to have been previously unlocked.
  //  See Global Unlock Sample for sample code.

  html := '<html><body><p><b>Hello</b> World!<p>This is a test</body></html>';

  //  Convert the above to XML
  h2x := THtmlToXml.Create;

  //  By default, text formatting tags are dropped. Text formatting HTML tags are: b, font, i, u, br, center, em, strong, big, tt, s, small, strike, sub, and sup
  h2x.Html := html;
  WriteLn(h2x.ToXml());

  //  The resulting XML is:

  //  <?xml version="1.0" encoding="utf-8"?>
  //  <root>
  //      <html>
  //          <body>
  //              <p>
  //                  <text>Hello World!</text>
  //              </p>
  //              <p>
  //                  <text>This is a test</text>
  //              </p>
  //          </body>
  //      </html>
  //  </root>

  //  To preserve text formatting tags, put the h2x instance into the mode where text formatting tags are not dropped:
  h2x.UndropTextFormattingTags();

  //  Convert again to see the difference:
  WriteLn(h2x.ToXml());

  //  The resulting XML is:

  //  <?xml version="1.0" encoding="utf-8"?>
  //  <root>
  //      <html>
  //          <body>
  //              <p>
  //                  <b>
  //                      <text>Hello</text>
  //                  </b>
  //                  <text> World!</text>
  //              </p>
  //              <p>
  //                  <text>This is a test</text>
  //              </p>
  //          </body>
  //      </html>
  //  </root>

  //  Call DropTextFormattingTags to put the h2x instance back in "drop" mode.
  h2x.DropTextFormattingTags();

  //  Convert again to see the difference:
  WriteLn(h2x.ToXml());

  //  The resulting XML is:

  //  <?xml version="1.0" encoding="utf-8"?>
  //  <root>
  //      <html>
  //          <body>
  //              <p>
  //                  <text>Hello World!</text>
  //              </p>
  //              <p>
  //                  <text>This is a test</text>
  //              </p>
  //          </body>
  //      </html>
  //  </root>


  h2x.Free;

end;

// ---------------------------------------------------------------------------

begin

  try
    RunDemo;
  except
    on E: Exception do
      WriteLn('Unhandled exception: ', E.ClassName, ': ', E.Message);
  end;

  WriteLn;
  {$IFDEF MSWINDOWS}
  WriteLn('Press Enter to exit...');
  ReadLn;
  {$ENDIF}
end.