要写xml文档:
<?xml version="1.0" ?> 
<! DOCTYPE sourceFiles SYSTEM 'sss.dtd' >
<root/><first/>............
采用TXMLDocument,如下:
xdom1: TXMLDocument;
nod : IXMLNode;
begin
   xdom1.version := '1.0';  //写了第一句:<?xml version="1.0" ?> 
   nod := xdom1.addchild('root');   //添加了一个节点
   ....
end; 
但是这个怎样写?<! DOCTYPE sourceFiles SYSTEM 'sss.dtd' >
请高手指点!

解决方案 »

  1.   

    晕,这个问题没人会吗?就是写xml文档时怎么写指定DTD文件啊,高手在哪?
      

  2.   

    我记得好像可以loadfromfile()吧。
      

  3.   

    XmlCmnt := XmlFile.DOMDocument.CreateComment(' DOCTYPE sourceFiles SYSTEM 'sss.dtd'([email protected]) (C) 2005 ');
        XmlFile.DOMDocument.AppendChild(XmlCmnt);
      

  4.   

    {
    XmlCmnt := XmlFile.DOMDocument.CreateComment(' DOCTYPE sourceFiles SYSTEM 'sss.dtd'([email protected]) (C) 2005 ');
        XmlFile.DOMDocument.AppendChild(XmlCmnt);              }
    这种方法不行.这样写出来是:
    <!-- DOCTYPE sourceFiles SYSTEM 'sss.dtd'-- >
    这是注释
      

  5.   

    zousoft的方法可行,不过太麻烦.唉,还有好方法没?
      

  6.   

    xdom1.XML.Add('<?xml version="1.0" ?><! DOCTYPE sourceFiles SYSTEM ''sss.dtd'' >');
    这个怎样,哈哈!
      

  7.   

    在delph里写XML用msxml的话,不能加<! DOCTYPE sourceFiles SYSTEM "sss.dtd">.即delph7采用msxml不支持dtd效验.唉................
      

  8.   

    var
          XMLFile:TStringList;
    begin
          XMLFile := TStringList.Create;
          XMLFile.Clear;
          XMLFile.Add('<?xml version="1.0" encoding="GB2312" standalone="no"?>');
          XMLFile.Add('<! DOCTYPE sourceFiles SYSTEM '+'''sss.dtd'''+'>');
          XMLFile.Add('<rootName>');
          XMLFile.Add('</rootName>');
          XMLFile.SaveToFile(fileName); // myXML.xml = fileName;
          XMLFile.Free;
    end;用上面的方法可以创建任意形式的XML文件,创建之后就可以利用TXMLDocument操作了