xsl-list
[Top] [All Lists]

RE: [xsl] Using URL Variable in XSL (with PHP)

2006-10-11 11:54:13
Try:

<xsl:for-each select="faculty/person[(_at_)id = $id]">
        <ul>
        <li>Name:<xsl:text> </xsl:text><xsl:value-of select="first"
/><xsl:text> </xsl:text><xsl:value-of select="last" /></li>
        <li>Title:<xsl:text> </xsl:text><xsl:value-of select="title"
/></li>
        <li>Research Interests:<xsl:text> </xsl:text><xsl:value-of
select="research" /></li>
        </ul>
</xsl:for-each>

Also, you can also use &#160; to get a blank space.

Hope this helps,
Trish

-----Original Message-----
From: Leisha Cook [mailto:lcook(_at_)ucdavis(_dot_)edu] 
Sent: Wednesday, October 11, 2006 2:37 PM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Using URL Variable in XSL (with PHP)

This has no doubt been addressed before, but I wasn't quite able to find
a solution to fit my situation. Or to understand any of solutions, at
any rate.

My XML file contains info about a number of people, each of whom has an
ID. I want to users to click on a link which includes the ID as a
variable and display that single person's info.

Here's a simplified version of the XML:

<faculty>
        <person id="1">
                <first>Joe</first>
                <last>Smith</last>
                <title>Professor</title>
                <research>My research is very complicated.</research>
        </person>
        <person id="2">
                <first>Mary</first>
                <last>Jones</last>
                <title>Chair</title>
                <research>I am interested in the effects of grape soda
on the self-esteem of the African eight-legged spotted
dachshund.</research>
        </person>
</faculty>

The link would be "../fac_profile.php?id=1"

fac_profile.php looks like this:

<h1>Research Profile</h1>
<?php
if (isset($_GET['id'])) {
$xml = simplexml_load_file('xml/faculty.xml');
$xsl = new DOMDocument;
$xsl->load('xslt/fac_profile.xsl');

$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl);
echo $proc->transformToXML($xml);
}
?>

My stylesheet looks like this:

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
<xsl:param name="id" />
        <xsl:template match="/">
                <xsl:if test="faculty/person[(_at_)id] = $id">
                        <ul>
                          <li>Name:<xsl:text> </xsl:text><xsl:value-of
select="first" /><xsl:text> </xsl:text><xsl:value-of select="last"
/></li>
                          <li>Title:<xsl:text> </xsl:text><xsl:value-of
select="title" /></li>
                          <li>Research Interests:<xsl:text>
</xsl:text><xsl:value-of select="research" /></li>
                        </ul>
                </xsl:if>
        </xsl:template>
</xsl:stylesheet>

I can't get the profile to display. What's wrong with my XSL (or is it
my PHP)? Any help would be greatly appreciated. Thanks.



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>