473,406 Members | 2,217 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,406 software developers and data experts.

XML and XSL

Hal


Hi all

I am having a hard time with XML. It's not that I don't understand the
concepts, but I really feel it wouldn't be that difficult if it wasn't for
the browsers.

Using the files below, IE gives expected results (by 'expected' I mean, it
gives the results that I wanted):

Mark
Peter
Bob
However, Firefox only lists Bob.

If anyone could tell me why, I would be really grateful.

My aim is to produce XML-based graphical (showing jpg images and data) and
database-driven websites that are fully functional in both the latest
version of Firefox and IE 6 SP1 onwards. Am I being unrealistic? Is there
any XML technology that can offer me consistent results in both browsers, or
am I being unrealistic?

Any thoughts would be appreciated!

With thanks
Hal

[file1: 1002people.xml]
<?xml version="1.0" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="1002people.xsl" ?>

<!-- this is a list of people -->
<people>
<husband employed="Yes">
<name>Mark</name>
<age>46</age>
<wife>
<wname>Janet</wname>
<age>42</age>
</wife>
</husband>
<husband employed="No">
<name>Peter</name>
<age>33</age>
<wife>
<wname>Sally</wname>
<age>28</age>
</wife>
</husband>
<husband employed="No">
<name>Bob</name>
<age>38</age>
<wife>
<wname>Annie</wname>
<age>23</age>
</wife>
</husband>

</people>

[file2: 1002people.xsl]
<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>

<xsl:template match="husband">
<xsl:value-of select="name" /><br />
</xsl:template>
</xsl:stylesheet>
Oct 17 '06 #1
14 1556
Hal wrote:
Using the files below, IE gives expected results (by 'expected' I mean, it
gives the results that I wanted):

Mark
Peter
Bob
>
[file1: 1002people.xml]
<?xml version="1.0" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="1002people.xsl" ?>

<!-- this is a list of people -->
<people>
<husband employed="Yes">
<name>Mark</name>
<age>46</age>
<wife>
<wname>Janet</wname>
<age>42</age>
</wife>
</husband>
<husband employed="No">
<name>Peter</name>
<age>33</age>
<wife>
<wname>Sally</wname>
<age>28</age>
</wife>
</husband>
<husband employed="No">
<name>Bob</name>
<age>38</age>
<wife>
<wname>Annie</wname>
<age>23</age>
</wife>
</husband>

</people>

[file2: 1002people.xsl]
<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>

<xsl:template match="husband">
<xsl:value-of select="name" /><br />
</xsl:template>
</xsl:stylesheet>
Try this:

[file2: 1002people.xsl]
<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
<html>
<xsl:apply-templates/>
</html>
</xsl:template>

<xsl:template match="husband">
<xsl:value-of select="name" /><br />
</xsl:template>
</xsl:stylesheet>

Oct 17 '06 #2
Hal schrieb:
Using the files below, IE gives expected results (by 'expected' I mean, it
gives the results that I wanted):

Mark
Peter
Bob
However, Firefox only lists Bob.
Firefox just has a different error recovery :-)

[...]
[file2: 1002people.xsl]
<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>

<xsl:template match="husband">
<xsl:value-of select="name" /><br />
</xsl:template>
</xsl:stylesheet>
You have to create a root element in the result tree.
--
Johannes Koch
In te domine speravi; non confundar in aeternum.
(Te Deum, 4th cent.)
Oct 17 '06 #3
Hal
Magnus - you beauty! Yes, that worked, thank you!

It was wrong of me to assume the browser was to blame.

Do you have any views about my other point, though? Is it realistic for me
to hope to use XHTML + XML + XSLT to drive Internet websites at this time?
Are these technologies supported well enough in the main browsers to allow
me to develop with them without having to write masses of extra code in
order to resolve compatibility issues?

I hope you can bear with me until I can clear this up in my head!

Thanks
Hal
Oct 17 '06 #4
Hal schrieb:
My aim is to produce XML-based graphical (showing jpg images and data) and
database-driven websites that are fully functional in both the latest
version of Firefox and IE 6 SP1 onwards.
Why do you want to do the transformation in the browser? It's more
reliable to do it on the server and then deliver HTML instead.
--
Johannes Koch
In te domine speravi; non confundar in aeternum.
(Te Deum, 4th cent.)
Oct 17 '06 #5

Johannes Koch wrote:
Why do you want to do the transformation in the browser? It's more
reliable to do it on the server and then deliver HTML instead.
Whether you do XSLT in the server or the browser, it's important to end
up with valid HTML. A bare <html>Foo<br /></htmldocument is still far
from valid
Client-side XSLT is workable these days, so long as you have adequate
fallbacks for the non-XSLT browsers. I'd tend to do it with an empty
HTML wrapper page and a JavaScript-driven transformation (i.e. AJAX)
though, rather than pure XML + XSLT. Pure XML to the browser has ugly
error behaviour if anything breaks - they're left staring at a dead
screen, they don't even have a link back to the homepage or non-XML
version.

Oct 17 '06 #6
Hal wrote:
Magnus - you beauty! Yes, that worked, thank you!

It was wrong of me to assume the browser was to blame.

Do you have any views about my other point, though? Is it realistic for me
to hope to use XHTML + XML + XSLT to drive Internet websites at this time?
Are these technologies supported well enough in the main browsers to allow
me to develop with them without having to write masses of extra code in
order to resolve compatibility issues?

I hope you can bear with me until I can clear this up in my head!

Thanks
Hal
I would think it's safe for most browsers. On the other hand, there are
very few examples of this in the wild. Considering the level of XML
support in the majority of browsers, I find it odd that it's not used
more. The only reason I can think of is that the cost of not supporting
older browsers is to high. I mean, if you are selling stuff on the web,
you don't want to loose customers based on their choice of browser.

Also, it is fairly simple to generate HTML on the server and send that
to the browser instead. Unless the user really need the XML for
something else than presentation, there is not much to gain.

But the thing is that HTML is served on almost all sites. This many
years after the creation of XML, I would expect at least some personal
homepages to use XML directly. This has not happened; XML never became
SGML for the web, not for presentation purposes anyway.

// Magnus
Oct 17 '06 #7
Hal
Those are very interesting points - thank you, Johannes and Andy, for your
replies.

Johannes - I would like to use PHP with a PostgreSQL db. Is this a good
combination? Could you explain how I can keep the transformation on the
server? Do you have any tips?

Andy - that sounds exactly what I need, because I would like the website
pages to be quite dynamic, using AJAX to re-sort columns etc. Do you have
any pointers, so that I could read up on this?

Thank you again
Hal

Oct 17 '06 #8
Hal
Magnus

You have raised some very interesting points, and I thank you for them

My problem is that I don't understand how HTML could be generated on the
server. Would you mind pointing me to some methods of doing this, please?

Again, thank you!
Hal
Oct 17 '06 #9
Hal schrieb:
Johannes - I would like to use PHP with a PostgreSQL db. Is this a good
combination? Could you explain how I can keep the transformation on the
server? Do you have any tips?
If you want to use PHP to do XSLT, then use a search engine with 'php xslt'.
--
Johannes Koch
Spem in alium nunquam habui praeter in te, Deus Israel.
(Thomas Tallis, 40-part motet)
Oct 17 '06 #10
Hal wrote:
My problem is that I don't understand how HTML could be generated on the
server. Would you mind pointing me to some methods of doing this, please?
That all depends on the capabilities of your server and your own
preferences. If it's your own server, you can do whatever you like, ASP.
PHP, Java, dotnet, etc, etc.

Otherwise you need to check what your hosting service provider supports.
Most providers support ASP and/or PHP. If you want to build something
that is reasonably platform independent (say you want to change
provider), then PHP is a safer choice.

// Magnus
Oct 18 '06 #11
Hal
Hi Magnus

Thank you again for your reply.
PHP5 is supplied on my sharedhosting server, and so this is the language I
will be using.
What I don't understand is how the server translates an XML+XSLT file into
XHTML. Can you tell me what modules should be included in the PHP
configuration in order for me to do this? What should I look for in
phpinfo()?
Thanks
Hal
Oct 18 '06 #12
Hal wrote:
PHP5 is supplied on my sharedhosting server, and so this is the language I
will be using.
What I don't understand is how the server translates an XML+XSLT file into
XHTML. Can you tell me what modules should be included in the PHP
configuration in order for me to do this? What should I look for in
phpinfo()?
libxslt is needed, see <http://www.php.net/manual/en/ref.xsl.php>.
--

Martin Honnen
http://JavaScript.FAQTs.com/
Oct 18 '06 #13
Hal
Fantastic, Martin - I have it!

Thank you very much for yours and everyone's help. Although I am obviously
discovering all this a bit late in the day, I am getting very excited about
it.

Sincerely
Hal
Oct 18 '06 #14
Hal wrote:
PHP5 is supplied on my sharedhosting server, and so this is the language I
will be using.
Can you tell me what modules should be included in the PHP
configuration in order for me to do this? What should I look for in
phpinfo()?
First see http://www.php.net/xsl.

Then see http://mxdj.sys-con.com/read/200299.htm.

// Magnus
Oct 19 '06 #15

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
by: William C. White | last post by:
Does anyone know of a way to use PHP /w Authorize.net AIM without using cURL? Our website is hosted on a shared drive and the webhost company doesn't installed additional software (such as cURL)...
2
by: Albert Ahtenberg | last post by:
Hello, I don't know if it is only me but I was sure that header("Location:url") redirects the browser instantly to URL, or at least stops the execution of the code. But appearantely it continues...
3
by: James | last post by:
Hi, I have a form with 2 fields. 'A' 'B' The user completes one of the fields and the form is submitted. On the results page I want to run a query, but this will change subject to which...
0
by: Ollivier Robert | last post by:
Hello, I'm trying to link PHP with Oracle 9.2.0/OCI8 with gcc 3.2.3 on a Solaris9 system. The link succeeds but everytime I try to run php, I get a SEGV from inside the libcnltsh.so library. ...
1
by: Richard Galli | last post by:
I want viewers to compare state laws on a single subject. Imagine a three-column table with a drop-down box on the top. A viewer selects a state from the list, and that state's text fills the...
4
by: Albert Ahtenberg | last post by:
Hello, I have two questions. 1. When the user presses the back button and returns to a form he filled the form is reseted. How do I leave there the values he inserted? 2. When the...
1
by: inderjit S Gabrie | last post by:
Hi all Here is the scenerio ...is it possibly to do this... i am getting valid course dates output on to a web which i have designed ....all is okay so far , look at the following web url ...
2
by: Jack | last post by:
Hi All, What is the PHP equivilent of Oracle bind variables in a SQL statement, e.g. select x from y where z=:parameter Which in asp/jsp would be followed by some statements to bind a value...
3
by: Sandwick | last post by:
I am trying to change the size of a drawing so they are all 3x3. the script below is what i was trying to use to cut it in half ... I get errors. I can display the normal picture but not the...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.