2017-01-09 9 views
2

に署名し、私はあることにdocumentElementを持っている必要があります??私は、Delphi 7とOmniXMLで働いているし、文書を作成しようとしていますXML.DocumentElement

< XMLバージョン=「1.0」エンコード= "UTF -8 "? >

最後の?記号を追加する方法を理解できません。

マイコード:

var  
    xml: IXMLDocument; 
begin  
    xml := ConstructXMLDocument('?xml');  
    SetNodeAttr(xml.DocumentElement, 'version', '1.0'); 
    SetNodeAttr(xml.DocumentElement, 'encoding', 'UTF-8');  
    XMLSaveToFile(xml, 'C:\Test1.xml', ofIndent); 
end; 

答えて

6
<?xml version="1.0" encoding="UTF-8"?> 

これはドキュメント要素ではありません。これは要素でもなく、処理命令であり、XML宣言であることもあります。時にはXMLプロローグとも呼ばれます。

は、XML宣言の属性を指定するには、代わりにこれを使用する:たとえば

xmlDoc.CreateProcessingInstruction('xml', 'version="1.0" encoding="UTF-8"'); 

{$APPTYPE CONSOLE} 

uses 
    OmniXML; 

var 
    XMLDoc: IXMLDocument; 
    ProcessingInstruction: IXMLProcessingInstruction; 
    DocumentElement: IXMLElement; 
begin 
    XMLDoc := CreateXMLDoc; 
    ProcessingInstruction := XMLDoc.CreateProcessingInstruction('xml', 
    'version="1.0" encoding="UTF-8"'); 
    DocumentElement := XMLDoc.CreateElement('foo'); 

    XMLDoc.DocumentElement := DocumentElement; 
    XMLDoc.InsertBefore(ProcessingInstruction, DocumentElement); 

    XMLDoc.Save('foo.xml', ofIndent); 
end. 
+0

ああ、大丈夫、今それを得ました!ありがとう。 – SovereignSun

関連する問題