[PHPTAL] Re: XHTML without tal tags
Kornel Lesiński
kornel at aardvarkmedia.co.uk
Thu Dec 3 17:11:11 CET 2009
On 03-12-2009 at 15:42:41 Michał <hosemaria at poczta.onet.pl> wrote:
>> What do you need this for? Why not simply execute the template?
>
> Let me explain.
> I am gonna use phptal template bot for generating content at server side
> and
> client side. I found interesting project (Javascript template engine)
>
> http://javascriptly.com/2008/08/a-better-javascript-template-engine/
>
> So to make one template for Javascript and PHP I need this method.
Well, I wouldn't use scripts from anybody who wrote
href="javascript:void(0)" ;)
If you're reading data via AJAX, then you can still use PHPTAL to generate
those fragments (wrap them in a macro and execute it from simple template
that just calls the macro).
If you want to use that JS engine anyway...
It'll be easier to remove TAL if you only use attributes, i.e. <x
tal:content="foo"> instead of <x>${foo}</x>.
Then try using XPath or XSLT to remove TAL attributes. You'll need to add
appropriate namespace declarations to XML (mentioned in manual for every
namespace) and declare them in XPath:
$xml = DOMDocument::loadXML('<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:tal="http://xml.zope.org/namespaces/tal">...');
$xp = new DOMXPath($xml);
$xp->registerNamespace('tal',"http://xml.zope.org/namespaces/tal");
foreach($xp->query('//@*[namespace-uri(.) =
"http://xml.zope.org/namespaces/tal"]') as $attr)
{
$attr->ownerElement->removeAttributeNS($attr->namespaceURI,
$attr->localName);
}
$noattr = $xml->saveXML();
--
regards, Kornel
More information about the PHPTAL
mailing list