Selective XML filtering

B

Ben

Hello,

i am tryng to create a frameset page with 2 xml docs, one is teh menu
one is the content, i want to be able to filter the content xml based
on whats picked in the menu, is there a way of using superglobals to
filter e.g. "content.xml?name=bob" as im not sure how i could get a
xslt to pick that unique data

thank you for your assistance!

Ben
 
M

Martin Honnen

Ben said:
i am tryng to create a frameset page with 2 xml docs, one is teh menu
one is the content, i want to be able to filter the content xml based
on whats picked in the menu, is there a way of using superglobals to
filter e.g. "content.xml?name=bob" as im not sure how i could get a
xslt to pick that unique data

My usual suggestion is to use e.g.
content.asp?name=bob
and then in content.asp (which could of course be php or jsp or any
other server-side framework) to read out the query string and perform
the XSLT transformation after passing parameters to the stylesheet.
 
B

Ben

My usual suggestion is to use e.g.
content.asp?name=bob
and then in content.asp (which could of course be php or jsp or any
other server-side framework) to read out the query string and perform
the XSLT transformation after passing parameters to the stylesheet.

Cheers for your response, i know waht you're talking about but im very
new to xml/xslt and dont know how i could impliment the xslt like that

is there any chance i could get a basic example

thanks alot!

Ben
 
M

Martin Honnen

Ben said:
Cheers for your response, i know waht you're talking about but im very
new to xml/xslt and dont know how i could impliment the xslt like that

Well the main suggestion is to do server-side transformation, not
client-side. How you do that depends on the server-side framework and
XSLT processor API you have available.
In terms of XSLT you would define a global parameter for each argument
you want to pass in the query string part of the URL and then you use
those parameters to filter elements e.g.

<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">

<xsl:param name="name" select="''"/>

<xsl:template match="/">
<html lang="en">
<head>
<title>Example</title>
</head>
<body>
<xsl:apply-templates select="root/person[$name = '' or @name =
$name]"/>
</body>
</html>
</xsl:template>

<xsl:template match="person">
<!-- add content here to output persons -->
</xsl:template>

</xsl:stylesheet>

The server-side framework (e.g. ASP or JSP or PHP for instance) allows
you to read out the query string. The API of the XSLT processor then
allows you to set the global parameter named 'name' before you run the
transformation.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,008
Messages
2,570,270
Members
46,873
Latest member
HeidiWeing

Latest Threads

Top