RE: How to build a XML DTD on "the fly"?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



  
> 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:
> 

There is no real standard for creating DTDs on the fly, and therefore libxml/DOM doesn't have any methods afaik.

The one method DOMElement::setIDAttribute() should work I think, but whilst PHP has the method, doesn?t seem todo anything. :/

Jared

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux