Jeff,

I never thanked you for this sample code you sent me.  I have dropped 
the XSLT from the current application I'm working on, but when I have 
opportunity to look into it again, I will find it most helpful.


Thanks again,


Erik





On Friday, April 12, 2002, at 04:42  PM, Jeff Levy wrote:

> Have you considered using sablotron's Excellent Named Buffer support?
>
> I do this all the time.
>
> ie: $addl_buffers['MySecondBuffer'] = "<?xml
> version='1.0'?><MyNode>Blah</MyNode>"
>     $addl_buffers['MyThirdArbitraryBuffer'] = ... etc etc etc...
>
> then, in stylesheet, for instance:
>
> <xsl:variable name="TestBuffer"
> select="document('arg:/MySecondBuffer')/MyNode"/>
>
> etc, etc.
>
> On Mon, 01 Apr 2002 11:08:12 -0500, Erik Price wrote:
>
>
>> On Friday, March 29, 2002, at 01:56  PM, Erik Price wrote:
>>
> <snip/>
>
>>
>>
>> Much thanks to Sean Scanlon for showing me how to create HTML 
>> attributes
>> from XML with XSLT.
>>
>>
>>
>> Erik
>>
>>
>>
>> ----
>>
>> Erik Price
>> Web Developer Temp
>> Media Lab, H.H. Brown
>> [EMAIL PROTECTED]
>>
>>> From: Erik Price <[EMAIL PROTECTED]> Date: Fri Mar 29, 2002  01:56:55
>>> PM US/Eastern To: [EMAIL PROTECTED] Subject: [PHP] IMPORTANT
>>> question for anyone using XSLT
>>>
>>> My, there have been a lot of questions about XSLT in the past 24 
>>> hrs...
>>> admittedly most of them coming from me.  In addition to my first
>>> question (repeated below for clarity), I have a second one -- how do I
>>> perform an XSLT transformation on multiple XML documents?  Do I need 
>>> to
>>> perform a separate XSLT transformation on each one?  The reason I ask
>>> is b/c I am pulling my XML from a DB, so there may be more than one
>>> based on the results from the query.  If anyone can answer this, 
>>> that'd
>>> be great.
>>>
>>> If not, perhaps you can help with this situation, which I believe will
>>> probably plague just about any PHP programmer who will ever use XSLT
>>> with PHP (or possibly any other language):
>>>
>>> I am still unsure of the best way to mix PHP & [X]HTML together in an
>>> XSLT stylesheet, because regardless of whether you specify the output
>>> method as "text" or "xml", if you are using HTML tags they must be
>>> well-formed, because Sablotron or expat (not sure which) will want the
>>> XSLT stylesheet to be a well-formed document.  Only, we often 
>>> interrupt
>>> our HTML code when using PHP, like this:
>>>
>>> $output_to_browser = "<a href='index.php'>Go"; $output_to_browser .=
>>> "home</a>";
>>>
>>> (of course, the output to the browser will by a hyperlink to index.php
>>> that says "Go home".)
>>>
>>> The above looks fine as PHP code, but if you try to manipulate the 
>>> data
>>> from an XSLT process in this fashion, you won't be able to use HTML
>>> tags -- the greater-than and less-than symbols can't be used, since an
>>> XSLT sheet is technically an XML document and these are not 
>>> well-formed
>>> tags.  In the XSLT sheet, the above might look like:
>>>
>>> <xsl:template match="location">
>>>  <a href="<xsl:value-of select="php_document" />">Go Home</a>
>>> </xsl:template>
>>>
>>> I thought that perhaps if I specified text as the output method, then
>>> the greater-than and less-than signs wouldn't be parsed, so I could 
>>> use
>>> them as such:
>>>
>>> <xsl:output method="text" />
>>>
>>> <xsl:template match="location">
>>>  <xsl:text>
>>>    <a href="
>>>  </xsl:text>
>>>     <xsl:value-of select="php_document" />
>>>  <xsl:text>
>>>    ">Go Home</a>
>>>  </xsl:text>
>>> </xsl:template match="location">
>>>
>>> See what's happening in the above?  I thought I had "escaped" my <a>
>>> tags by placing them within the <xsl:text> tags, but this is not so --
>>> they are parsed, and the document is then interpreted as not being
>>> well-formed.
>>>
>>>
>>> So unless you want to do a straight XML-to-XML or XML-to-XHTML
>>> transformation, OR you don't want to use ANY XML or XHTML tags in your
>>> output document, you're kind of up a river.  Unless someone on this
>>> list can help me find a way to "escape" the HTML tags when creating 
>>> PHP
>>> code.
>>>
>>> And the only way I can think of doing it (which I still haven't 
>>> tested,
>>> but might have to use) is to use variables to represent the HTML tags
>>> so that instead of
>>>
>>> <a href="    and     ">Go Home</a>
>>>
>>> I could use
>>>
>>> $astartag = "<a href='";
>>> $aendtag = "'>Go Home</a>";
>>>
>>> and then make the style sheet like this:
>>>
>>> <xsl:output method="text" />
>>>
>>> <xsl:template match="location">
>>>  <xsl:text>
>>>    $astartag
>>>  </xsl:text>
>>>     <xsl:value-of select="php_document" />
>>>  <xsl:text>
>>>    $aendtag
>>>  </xsl:text>
>>> </xsl:template match="location">
>>>
>>>
>>> That should work in theory.  But it's incredibly crude.
>>>
>>>
>>> What do you all think?
>>>
>>>
>>>
>>>
>>>
>>> Erik
>>>
>>>





----

Erik Price
Web Developer Temp
Media Lab, H.H. Brown
[EMAIL PROTECTED]
>>>
>>>
>>> -- PHP General Mailing List (http://www.php.net/) To unsubscribe,
>>> visit: http://www.php.net/unsub.php
>>>
>>>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>


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

Reply via email to