[きときとTop]-[Delphi]-[XDOMJ]

since 2001/09/30

LastUpdate: 2001/10/19

XDOMJ - 日本語対応XDOM

Borland Delphi, Kylix用のXMLパーサーを含むオープンソースのXMLライブラリです。
DOM Core Level2 をサポートしています。

オリジナルは
OpenXML
http://www.philo.de/xml/
のXDOM http://www.philo.de/xml/dom/ です。

XDOM 2.3.17 をベースに日本語化しています。
XDOMJ
http://hp.vector.co.jp/authors/VA017148/delphi/xml/



ダウンロード

XDOMJ 2.3.17.j3
xdomj_2_3_17_j3_20011019.lzh

オリジナルの XDOM http://www.philo.de/xml/dom/必ずダウンロードしてください。
XDOMJには、基本的なドキュメントや親切なサンプルプログラムなどは含まれていません。


使い方

オリジナルのXDOMと全く同じです。
XDOM_2_3_J2.pas をパスの通ったディレクトリにコピーしてください。

コンポーネントを登録するようにはなっていないので、すべてコードで記述してください。
オリジナルからユニットファイルの名前を変更しているため ひとつのプロジェクト内に共存できます。
同じユニット内では共存できないと思います。

基本的な使い方は、サンプルプロジェクト(XDOMJ_Sample_*_Project1.dpr)を参照してください。
詳細は XDOM のドキュメント を参照してください。


オリジナルの XDOM との違い




サンプルコード

サンプルプロジェクトからの抜粋です。
読み込み:
procedure TForm1.Button1Click(Sender: TObject);
var
  Doc: TDomDocument;
begin
  OpenDialog1.Filter := 'xmlドキュメント(*.xml)|*.xml|すべてのファイル(*.*)|*.*';
  if OpenDialog1.Execute then
  begin
    Memo1.Lines.Clear;
    DomImplementation1.clear;

    Doc := XmlToDomParser1.fileToDom(OpenDialog1.FileName);

    PrintNodeTree(Doc, 0);

    Memo2.Lines.Text := Doc.code;

    Button2.Enabled := True;
    Button3.Enabled := True;
  end;
end;

保存:
procedure TForm1.Button2Click(Sender: TObject);
var
  fs: TFileStream;
  Doc: TdomDocument;
begin
  SaveDialog1.Filter := 'xml文書(*.xml)|*.xml';
  if SaveDialog1.Execute then
  begin
    Doc := DomImplementation1.documents.item(0) as TdomDocument;

    ShowMessage(SaveDialog1.FileName);
    Caption := 'save: ' + SaveDialog1.FileName;

    fs := TFileStream.Create(SaveDialog1.FileName, fmCreate);
    try
      Doc.writeCodeAsShiftJIS(fs);
    finally
      fs.Free;
    end;
  end;

end;

ライセンス

オリジナルのXDOMに準じます。




変更した人

稀杜(kito)/森口宏一(MORIGUCHI Hirokazu)
mail: kito@kun.ne.jp
web: http://hp.vector.co.jp/authors/VA017148/


何かあったら、メールか上記Webページの掲示板に書いてください。
メールには返信できるとは限りません。できるだけ掲示板で。



更新履歴

2.3.17.j1
2001/09/30
1.
公開


2.3.17.j2
2001/10/07
2.
オリジナルXDOMのTXmlToDomParserのOnExternalSubsetイベントが発生しないバグを修正した。

3.
サンプルプログラムで外部DTDを参照しているxmlファイルを開けるようにした。


2.3.17.j3
2001/10/19

4.
手続き XMLAnalysePubSysId() でメモリリークが発生するバグを修正した。