|
Posted by "Jared Williams" on 11/19/05 00:29
> 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, doesnt seem todo anything. :/
Jared
Navigation:
[Reply to this message]
|