2

XML を 1 行ずつ作成する場合はエンコードを設定できますが、ファイルから読み込む場合はエンコードを追加できません。見る:

procedure TForm1.Button1Click(Sender: TObject);
var
    x : TXMLDocument;
    s : string;
    w : WIdeString;
begin
    s := '<?xml version="1.0"?><a><b/></a>';
    x := TXMLDocument.Create(Self);
    x.XML.Text := s;
    x.Active := True;
    x.Encoding := 'UTF-8';
    x.DocumentElement.childNodes['b'].attributes['x'] := '1';
    x.SaveToXML(w);
    ShowMessage(w);
end;

結果から「エンコード」部分が欠落しているのが興味深い!

結果に XML エンコーディングを含めるにはどうすればよいですか?

4

1 に答える 1

4

XML を WideString に保存しています。WideStringは、定義上、UTF16 でエンコードされているため、別のエンコードを指定しても意味がありません。IIRC、それはそれであるため、削除されない を指定できます。encoding="UTF-16"

ただし、結果として XML ドキュメントをストリームに保存する場合は、別のエンコーディングを指定できます。

于 2012-06-05T06:39:23.773 に答える