Michael A. Peters wrote:
The $dom->saveHTML() function does a pretty good job of knowing what tags are not closed - IE it does <br>, <meta>, <param>, etc. correctly.

Is there a way to add a tag without children to it's database?

Specifically I'm talking about the new <source> tag from HTML 5 that is being used to embed ogg/mp4 audio and video files.

Put it in a dom document object and spit it out with saveHTML() and you get <source src="foo.ogg" type="video/ogg"></source> which is harmless but technically incorrect.

I know html tidy allows you to define new childless nodes and sending the output through tidy will then fix it, but I can't seem to find a way to to it with DOMDocument so that you don't need to send it through tidy before sending to the client.

If you use saveXML instead of saveHTML, it will self-close empty tags. Then for any tags that should not be self-closed, you just need to pass an empty value as the second parameter of createElement.

$doc->createElement('source');
...
echo $doc->saveXML(); // <source />

$doc->createElement('div', '');
...
echo $doc->saveXML(); // <div></div>

That's the way I'd do it. Hope that helps.

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

Reply via email to