Re: How to build a XML DTD on "the fly"?
| From: | James Benson | Date: | Thu, 17 Nov 2005 14:59:28 +0000 |
| Subject: | Re: How to build a XML DTD on "the fly"? | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-225976@lists.php.net to get a copy of this message | ||
Learn DTD and how it works first then you will know :-)
A DTD is contained in an external file and not in XML, so you would create a DTD file then link it from the XML like so,
<!DOCTYPE document SYSTEM "document.dtd">
Erik Franzén wrote:
The code below lacks the part where the folling DTD attribute is created: <!ATTLIST document id ID #IMPLIED> How can I create the above DTD attribute in the code below? <?php // Creates an instance of the DOMImplementation class $oDomImp = new DOMImplementation; // Creates a DOMDocumentType instance $oDomDtd = $oDomImp->createDocumentType('document', null, null); // Creates a DOMDocument instance $oDom = $oDomImp->createDocument("", "", $oDomDtd); // Set other properties $oDom->encoding = 'iso-8859-1'; $oDom->standalone = true; // Create an empty element $oElement = $oDom->createElement('document', 'test'); $oElement->setAttribute('id', '123'); // Append the element $oDom->appendChild($oElement); // Retrieve and print the document echo $oDom->saveXML() . "\n"; echo "TagName: " . $oDom->getElementById('123')->tagName; ?> Now the code produces the following result: <?xml version="1.0" encoding="iso-8859-1" standalone="yes"?> <!DOCTYPE document> <document id="123">test</document> TagName: Thanks /Erik