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