Re: [PHP] How to build a XML DTD on "the fly"?

2005-11-18 Thread Rob

Jared Williams wrote:

setAttributeNS('http://www.w3.org/XML/1998/namespace', 'id', 'abc') doesn’t 
work either, getElementById() still fails.


It does work as long as you are using libxml2-2.6.22

Rob

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



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

2005-11-18 Thread Jared Williams
> 
> Jared Williams wrote:
> > 
> > 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. :/
> 
> DocumentType nodes are read-only in DOM thus cannot be built 
> on the fly. 
> Also notice that not all components, such as ATTLIST, even 
> have a node type.
> 
> setIDAttribute - thats on the TODO list. Were some previous 
> libxml issues to be resolved before that could be implemented 
> (so it will be added, but require a minimum libxml2 version to work).
> Can always use xml:id attributes for that purpose for now though.

setAttributeNS('http://www.w3.org/XML/1998/namespace', 'id', 'abc') doesn’t 
work either, getElementById() still fails.

Jared

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



Re: [PHP] How to build a XML DTD on "the fly"?

2005-11-18 Thread Rob

Jared Williams wrote:


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


DocumentType nodes are read-only in DOM thus cannot be built on the fly. 
Also notice that not all components, such as ATTLIST, even have a node type.


setIDAttribute - thats on the TODO list. Were some previous libxml 
issues to be resolved before that could be implemented (so it will be 
added, but require a minimum libxml2 version to work).

Can always use xml:id attributes for that purpose for now though.

Rob

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



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

2005-11-18 Thread Jared Williams
  
> The code below lacks the part where the folling DTD attribute is
> created: 
> 
> How can I create the above DTD attribute in the code below?
> 
>  // 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:
> 
>  
>  test
> 
> 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