2017-01-09 8 views
2

에 가입하고 내가 할 것을 DocumentElement이 필요합니다 :? 델파이 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