使用 php domdocument 在 xml 中添加文档类型

adding doctype in xml with php domdocument

在 php 中,我使用 domdocument 创建我的 XML:

$xml_data = new DOMDocument("1.0", "UTF-8");

// create root element
$root = $xml_data->createElement("cXML");
$xml_data->appendChild($root);

etcetera

是否可以添加这个元素:

<!DOCTYPE cXML
  SYSTEM 'http://xml.cXML.org/schemas/cXML/1.2.008/cXML.dtd'>

进入 XML 与 PHP domdocument,所以你得到:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cXML
  SYSTEM 'http://xml.cXML.org/schemas/cXML/1.2.008/cXML.dtd'>

您可以使用 DOMImplementation 代替:

$imp = new DOMImplementation();
$xml_data = $imp->createDocument(
    null, 
    'cXML',  
    $imp->createDocumentType('cXML', 
        null, 
        'http://xml.cXML.org/schemas/cXML/1.2.008/cXML.dtd'
    )
);
$xml_data->xmlVersion="1.0";
$xml_data->encoding="UTF-8";

// No need to create root elemet, it's already there
// $root = $xml_data->createElement("cXML");
// $xml_data->appendChild($root);

etcetera