XML, XSL, and XHTML - some basic questions

XML, Perl, Python, and other languages can be discussed here, even if it isn't PHP (We might forgive you).

Moderator: General Moderators

Post Reply
GM
Forum Contributor
Posts: 365
Joined: Wed Apr 26, 2006 4:19 am
Location: Italy

XML, XSL, and XHTML - some basic questions

Post by GM »

So.... I've been reading this: http://www.tonymarston.net/xml-xsl/reusable-xsl.html and wondering whether I can use it in what I'm doing. The idea sounds great, so I've done a bit of research, and now I understand what XML is, I undertand how to transform it using XSL stylesheets, and to therefore produce XHTML. I also understand that this can be done either on the client-side, or on the server-side.

So... the basics I understand.

The part I'm lacking is the integration with PHP. Let's suppose I have a database which contains data for a forum, like this one. So, I need to basically display various screens which are quite similar - one could be a list of forums, another would be the list of threads within the forum, another could be the list of posts in the thread. These pages are all essentially the same, in that the priciple data is displayed in a tabulated list.

I would usually do this by querying the database, returning a result set and Echoing the results to the page in a foreach loop. The downside to this, is that I end up repeating this kind of code for all "similar" pages, which makes coding the pages a laborious process.

At a basic level, what do I need to do in PHP? Do I need to create an XML document containing data from the database every time the page is opened? Have I misunderstood totally? Once I've got the XML document, I'm fine - I know what to do with it. It's just that area between PHP and the XML document that I don't understand...

If someone would be so kind as to give me a quick overview of what needs to happen, I'd be very grateful.

Thanks,

GM
Roja
Tutorials Group
Posts: 2692
Joined: Sun Jan 04, 2004 10:30 pm

Post by Roja »

The PHP will do the db query, format the results, and output them as XML.

Then you can apply the XSLT transforms to it.
timvw
DevNet Master
Posts: 4897
Joined: Mon Jan 19, 2004 11:11 pm
Location: Leuven, Belgium

Re: XML, XSL, and XHTML - some basic questions

Post by timvw »

GM wrote: I would usually do this by querying the database, returning a result set and Echoing the results to the page in a foreach loop. The downside to this, is that I end up repeating this kind of code for all "similar" pages, which makes coding the pages a laborious process.
It seems that you have to read the other articles at his site too ;)

My main issue with XML/XSL is that it eats lots and lots of cpu/memory and thus not optimal for high-traffic sites.. The other disadvantage was that most webhosts don't have the XSL(T) extension enabled by default...
GM
Forum Contributor
Posts: 365
Joined: Wed Apr 26, 2006 4:19 am
Location: Italy

Re: XML, XSL, and XHTML - some basic questions

Post by GM »

timvw wrote: It seems that you have to read the other articles at his site too ;)
Believe me, I'm reading everything I can get my hands on. The only problem is that as I'm learning constantly, I'm constantly rewriting everything, so nothing is ever stable...

I'm at a stage at the moment where I can do everything I need to do, but I'm never happy that I'm doing it right
timvw
DevNet Master
Posts: 4897
Joined: Mon Jan 19, 2004 11:11 pm
Location: Leuven, Belgium

Post by timvw »

Imho there isn't a good definition for 'doing it right'.

For me it means: meeting the client requirements, with the lowest cost on the long term (Usually clients only care about short term, so this can become difficult. The other disadvantage is that i don't have a crystal ball that says which parts of an application will need to be changed in order to stay synced with changing client requirements...)

These days my approach is the following: Does it meet client requirements? If yes, then stop refactoring/improving the application and deliver.. (If the requirements change later on, i still have the possiblity to refactor to a more intelligent solution)

To make it brief: What do you want to do with the XML/XSL approach? Write down your requirements, and then implement a solution. Adapting the requirements to the limitations of your implementation isn't very workable (and at best a frustrating experience, since nobody likes limitations ;))
User avatar
Luke
The Ninja Space Mod
Posts: 6424
Joined: Fri Aug 05, 2005 1:53 pm
Location: Paradise, CA

Re: XML, XSL, and XHTML - some basic questions

Post by Luke »

timvw wrote:
GM wrote: I would usually do this by querying the database, returning a result set and Echoing the results to the page in a foreach loop. The downside to this, is that I end up repeating this kind of code for all "similar" pages, which makes coding the pages a laborious process.
It seems that you have to read the other articles at his site too ;)

My main issue with XML/XSL is that it eats lots and lots of cpu/memory and thus not optimal for high-traffic sites.. The other disadvantage was that most webhosts don't have the XSL(T) extension enabled by default...
What is the point of using it then? Just so the data it outputs is really portable? Is that the advandage of XML? I have had a hard time understanding what the point is.
GM
Forum Contributor
Posts: 365
Joined: Wed Apr 26, 2006 4:19 am
Location: Italy

Post by GM »

timvw wrote: To make it brief: What do you want to do with the XML/XSL approach? Write down your requirements, and then implement a solution.
Thanks for the answer - to be honest, I'm still not sure that there is an advantage to using XML/XSL over a more intelligent way (than I'm currently using) of displaying data. It's just a new method of doing things that I'd like to play with, to weigh up the pros and cons. The only problem was that I couldn't understand how to go about implementing it in PHP... and to be honest, I still don't. I'll read more... :)
Roja
Tutorials Group
Posts: 2692
Joined: Sun Jan 04, 2004 10:30 pm

Re: XML, XSL, and XHTML - some basic questions

Post by Roja »

The Ninja Space Goat wrote:What is the point of using it then? Just so the data it outputs is really portable? Is that the advandage of XML? I have had a hard time understanding what the point is.
Maintainability, portability, and more.

Here's an example. Lets say google makes a great mapping solution, and you want to be able to include a map from their site on your page - a real estate page. You feed it xml (the address), and it replies with the map (also wrapped in xml).

Then YOUR page in turn is valuable to FakeRealtyCompany, who wants to show your listings to potential buyers. They include your xml in their page, which now includes both your listing, and your map.

Now imagine that you want to check your competitors on a daily basis. Thankfully, they provide an xml feed of THEIR listings, so you can write a script that checks their listings in realtime, and adjust your home cost to match within 10% of theirs - staying competitive on a realtime basis.

But wait, now picture that you want this information on your cellphone. I mean, the selling price of your house is changing every day, so you probably want to know! You can now take that xml from your site, and write an XSLT transform for it so it outputs WML for use on your cell.

Then you end up with a buyer who happens to be blind, so you write a XSLT to produce a nice XHTML compliant version of the page.

I haven't even touched on the ability to change the style, layout, other content on the page (ala my yahoo), and more.

XML is, at its best, a data 'module' that can be manipulated, transferred, shared, and processed easily. The number of things that enables is incredibly large.
User avatar
Luke
The Ninja Space Mod
Posts: 6424
Joined: Fri Aug 05, 2005 1:53 pm
Location: Paradise, CA

Re: XML, XSL, and XHTML - some basic questions

Post by Luke »

Roja wrote:
The Ninja Space Goat wrote:What is the point of using it then? Just so the data it outputs is really portable? Is that the advandage of XML? I have had a hard time understanding what the point is.
Maintainability, portability, and more.

Here's an example. Lets say google makes a great mapping solution, and you want to be able to include a map from their site on your page - a real estate page. You feed it xml (the address), and it replies with the map (also wrapped in xml).

Then YOUR page in turn is valuable to FakeRealtyCompany, who wants to show your listings to potential buyers. They include your xml in their page, which now includes both your listing, and your map.

Now imagine that you want to check your competitors on a daily basis. Thankfully, they provide an xml feed of THEIR listings, so you can write a script that checks their listings in realtime, and adjust your home cost to match within 10% of theirs - staying competitive on a realtime basis.

But wait, now picture that you want this information on your cellphone. I mean, the selling price of your house is changing every day, so you probably want to know! You can now take that xml from your site, and write an XSLT transform for it so it outputs WML for use on your cell.

Then you end up with a buyer who happens to be blind, so you write a XSLT to produce a nice XHTML compliant version of the page.

I haven't even touched on the ability to change the style, layout, other content on the page (ala my yahoo), and more.

XML is, at its best, a data 'module' that can be manipulated, transferred, shared, and processed easily. The number of things that enables is incredibly large.
WOW... that really clears things up. Thank you!
I actually have a project coming up where this could help me immensely.
Roja
Tutorials Group
Posts: 2692
Joined: Sun Jan 04, 2004 10:30 pm

Re: XML, XSL, and XHTML - some basic questions

Post by Roja »

The Ninja Space Goat wrote:WOW... that really clears things up. Thank you!
I actually have a project coming up where this could help me immensely.
Egads, I thought I rambled on endlessly and was entirely unclear. Glad to see it had some value.
Post Reply