472,353 Members | 1,053 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

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

XSLT - Help!

I am just getting to grips with XML and I was wondering if you could help me
with something that no-one seems able or willing to help with..

I have an XSLT file which should be transforming a straight XML file

http://www.discovertravelandtours.co...cation=Germany

To another XML file

http://www.discovertravelandtours.co...cation=Germany

As you can see the second one is not being output with the element names I
have defined in the XSLT, its just plain text.

The XSLT is given below, all I need is a bit of info on how to make it
output in the same way as the original file (plain xml).

<?xml version="1.0" encoding="UTF-8"?>

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

<xsl:output method="xml" version="1.0" encoding="iso-8859-1" indent="yes"/>

<xsl:template match = "/">

<xsl:for-each select="Booking/segment">

<xsl:element name="res">

<xsl:value-of select="ReservationNumber" />

</xsl:element>

<xsl:element name="Nights">

<xsl:value-of select="NumberofDays" />

</xsl:element>

<xsl:element name="MAdults">

<xsl:value-of select="NumberofMaleAdults" />

</xsl:element>

<xsl:element name="FAdults">

<xsl:value-of select="NumberofFemaleAdults" />

</xsl:element>

<xsl:element name="MChildren">

<xsl:value-of select="NumberofMaleChildren" />

</xsl:element>

<xsl:element name="FChildren">

<xsl:value-of select="NumberofFemaleChildren" />

</xsl:element>

<xsl:element name="From">

<xsl:value-of select="From" />

</xsl:element>

</xsl:for-each>

</xsl:template>

</xsl:stylesheet>

Thanks in advance
Jul 20 '05 #1
6 2621
Hi,

from a brief look, the 1st problem is that yuor for-each uses <xsl:for-each
select="Booking/segment">

your XMl is of the structure /root/segment (there is no "Booking element)

Colin

--
Colin Mackenzie
XML Consultant
Electronic Media Consultants Ltd
17 North Wall, Cricklade, Wiltshire, SN6 6DU
Tel/Fax: +44 (0)1793 752193
Email: co***@elecmc.com
Web: http://www.elecmc.com

"Pete" <pb*******@NOSPAMdiscovertravelandtours.com> wrote in message
news:be*******************@news.demon.co.uk...
I am just getting to grips with XML and I was wondering if you could help me with something that no-one seems able or willing to help with..

I have an XSLT file which should be transforming a straight XML file

http://www.discovertravelandtours.co...Location=Germa
ny
To another XML file

http://www.discovertravelandtours.co...?Location=Germ
any
As you can see the second one is not being output with the element names I
have defined in the XSLT, its just plain text.

The XSLT is given below, all I need is a bit of info on how to make it
output in the same way as the original file (plain xml).

<?xml version="1.0" encoding="UTF-8"?>

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

<xsl:output method="xml" version="1.0" encoding="iso-8859-1" indent="yes"/>
<xsl:template match = "/">

<xsl:for-each select="Booking/segment">

<xsl:element name="res">

<xsl:value-of select="ReservationNumber" />

</xsl:element>

<xsl:element name="Nights">

<xsl:value-of select="NumberofDays" />

</xsl:element>

<xsl:element name="MAdults">

<xsl:value-of select="NumberofMaleAdults" />

</xsl:element>

<xsl:element name="FAdults">

<xsl:value-of select="NumberofFemaleAdults" />

</xsl:element>

<xsl:element name="MChildren">

<xsl:value-of select="NumberofMaleChildren" />

</xsl:element>

<xsl:element name="FChildren">

<xsl:value-of select="NumberofFemaleChildren" />

</xsl:element>

<xsl:element name="From">

<xsl:value-of select="From" />

</xsl:element>

</xsl:for-each>

</xsl:template>

</xsl:stylesheet>

Thanks in advance

Jul 20 '05 #2
Hi Pete,
I have an XSLT file which should be transforming a straight XML file

http://www.discovertravelandtours.co...Location=Germa
ny
To another XML file

http://www.discovertravelandtours.co...?Location=Germ
any

Are you sure you have that the right way round? Looks like the second XML
document is the source (that being the one that has the stylesheet
reference - which is incorrect BTW - in it and the one that has a <Booking>
root element as your XSLT code seems to be looking for).

Anyway, your stylesheet as it stands won't be producing well-formed XML
because there is no single root element.

Maybe your stylesheet should look like...

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="iso-8859-1"
indent="yes"/>
<xsl:template match = "/">
<root>
<xsl:for-each select="Booking/segment">
<segment>
<res>
<xsl:value-of select="ReservationNumber" />
</res>
<Nights>
<xsl:value-of select="NumberofDays" />
</Nights>
<MAdults>
<xsl:value-of select="NumberofMaleAdults" />
</MAdults>
<FAdults>
<xsl:value-of select="NumberofFemaleAdults" />
</FAdults>
<MChildren>
<xsl:value-of select="NumberofMaleChildren" />
</MChildren>
<FChildren>
<xsl:value-of select="NumberofFemaleChildren" />
</FChildren>
<From>
<xsl:value-of select="From" />
</From>
</segment>
</xsl:for-each>
</root>
</xsl:template>
</xsl:stylesheet>

Notice that you don't need to use <xsl:element> for what you are doing -
explicit output elements will be cleaner and usually faster (depending on
the transformation engine used).

If you are transforming the other XML file then you just need to change...
<xsl:for-each select="Booking/segment">
to...
<xsl:for-each select="root/segment">
NB. In your XML the stylesheet pi looks like...
<?xml:stylesheet type="text/xsl" href="test3.xsl"?>
but it should be...
<?xml-stylesheet type="text/xsl" href="test3.xsl"?>
(notice it's a hyphen rather than a semi-colon - I know IE will accept the
first - but that's just an MS goof).

Hope this helps
Marrow
http://www.marrowsoft.com - home of Xselerator (XSLT IDE and debugger)
http://www.topxml.com/Xselerator
"Pete" <pb*******@NOSPAMdiscovertravelandtours.com> wrote in message
news:be*******************@news.demon.co.uk... I am just getting to grips with XML and I was wondering if you could help me with something that no-one seems able or willing to help with..

I have an XSLT file which should be transforming a straight XML file

http://www.discovertravelandtours.co...Location=Germa
ny
To another XML file

http://www.discovertravelandtours.co...?Location=Germ
any
As you can see the second one is not being output with the element names I
have defined in the XSLT, its just plain text.

The XSLT is given below, all I need is a bit of info on how to make it
output in the same way as the original file (plain xml).

<?xml version="1.0" encoding="UTF-8"?>

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

<xsl:output method="xml" version="1.0" encoding="iso-8859-1" indent="yes"/>
<xsl:template match = "/">

<xsl:for-each select="Booking/segment">

<xsl:element name="res">

<xsl:value-of select="ReservationNumber" />

</xsl:element>

<xsl:element name="Nights">

<xsl:value-of select="NumberofDays" />

</xsl:element>

<xsl:element name="MAdults">

<xsl:value-of select="NumberofMaleAdults" />

</xsl:element>

<xsl:element name="FAdults">

<xsl:value-of select="NumberofFemaleAdults" />

</xsl:element>

<xsl:element name="MChildren">

<xsl:value-of select="NumberofMaleChildren" />

</xsl:element>

<xsl:element name="FChildren">

<xsl:value-of select="NumberofFemaleChildren" />

</xsl:element>

<xsl:element name="From">

<xsl:value-of select="From" />

</xsl:element>

</xsl:for-each>

</xsl:template>

</xsl:stylesheet>

Thanks in advance

Jul 20 '05 #3
Thankyou for your replies,

Yes you are correct the first link i give is not the same xml doc as the
second link - the second one has the style sheet applied. I included the
first link to show the original un-transformed xml page.

I have put the changes you suggest in place marrow but as you will see from
the following link:
http://www.discovertravelandtours.co...cation=Germany

The output is still "text"
Or at least it is displaying as text, the output may very well be XML and
structured as such but i dont seem to be able to view it that way?

Any ideas?

"Marrow" <marrow-NO-@-SPAM-marrowsoft.com> wrote in message
news:tR*****************@newsfep2-gui.server.ntli.net...
Hi Pete,
I have an XSLT file which should be transforming a straight XML file

http://www.discovertravelandtours.co...Location=Germa ny

To another XML file

http://www.discovertravelandtours.co...?Location=Germ any

Are you sure you have that the right way round? Looks like the second XML
document is the source (that being the one that has the stylesheet
reference - which is incorrect BTW - in it and the one that has a <Booking> root element as your XSLT code seems to be looking for).

Anyway, your stylesheet as it stands won't be producing well-formed XML
because there is no single root element.

Maybe your stylesheet should look like...

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="iso-8859-1"
indent="yes"/>
<xsl:template match = "/">
<root>
<xsl:for-each select="Booking/segment">
<segment>
<res>
<xsl:value-of select="ReservationNumber" />
</res>
<Nights>
<xsl:value-of select="NumberofDays" />
</Nights>
<MAdults>
<xsl:value-of select="NumberofMaleAdults" />
</MAdults>
<FAdults>
<xsl:value-of select="NumberofFemaleAdults" />
</FAdults>
<MChildren>
<xsl:value-of select="NumberofMaleChildren" />
</MChildren>
<FChildren>
<xsl:value-of select="NumberofFemaleChildren" />
</FChildren>
<From>
<xsl:value-of select="From" />
</From>
</segment>
</xsl:for-each>
</root>
</xsl:template>
</xsl:stylesheet>

Notice that you don't need to use <xsl:element> for what you are doing -
explicit output elements will be cleaner and usually faster (depending on
the transformation engine used).

If you are transforming the other XML file then you just need to change...
<xsl:for-each select="Booking/segment">
to...
<xsl:for-each select="root/segment">
NB. In your XML the stylesheet pi looks like...
<?xml:stylesheet type="text/xsl" href="test3.xsl"?>
but it should be...
<?xml-stylesheet type="text/xsl" href="test3.xsl"?>
(notice it's a hyphen rather than a semi-colon - I know IE will accept the
first - but that's just an MS goof).

Hope this helps
Marrow
http://www.marrowsoft.com - home of Xselerator (XSLT IDE and debugger)
http://www.topxml.com/Xselerator
"Pete" <pb*******@NOSPAMdiscovertravelandtours.com> wrote in message
news:be*******************@news.demon.co.uk...
I am just getting to grips with XML and I was wondering if you could help
me
with something that no-one seems able or willing to help with..

I have an XSLT file which should be transforming a straight XML file

http://www.discovertravelandtours.co...Location=Germa ny

To another XML file

http://www.discovertravelandtours.co...?Location=Germ any

As you can see the second one is not being output with the element names

I have defined in the XSLT, its just plain text.

The XSLT is given below, all I need is a bit of info on how to make it
output in the same way as the original file (plain xml).

<?xml version="1.0" encoding="UTF-8"?>

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

<xsl:output method="xml" version="1.0" encoding="iso-8859-1"

indent="yes"/>

<xsl:template match = "/">

<xsl:for-each select="Booking/segment">

<xsl:element name="res">

<xsl:value-of select="ReservationNumber" />

</xsl:element>

<xsl:element name="Nights">

<xsl:value-of select="NumberofDays" />

</xsl:element>

<xsl:element name="MAdults">

<xsl:value-of select="NumberofMaleAdults" />

</xsl:element>

<xsl:element name="FAdults">

<xsl:value-of select="NumberofFemaleAdults" />

</xsl:element>

<xsl:element name="MChildren">

<xsl:value-of select="NumberofMaleChildren" />

</xsl:element>

<xsl:element name="FChildren">

<xsl:value-of select="NumberofFemaleChildren" />

</xsl:element>

<xsl:element name="From">

<xsl:value-of select="From" />

</xsl:element>

</xsl:for-each>

</xsl:template>

</xsl:stylesheet>

Thanks in advance


Jul 20 '05 #4
Hi Pete,

Ah, I see, that's an IE 'problem' - it always thinks that transformations
will produce HTML so it renders them as such (and because there are no
actual HTML tags in your output it just displays the text nodes). You get
the same problem, for example, if you try to output SVG from a
transformation.

Is IE an integral part of what you're doing? Or are you just using it to
view the transformation results - if so, try something else ;)

Cheers
Marrow
http://www.marrowsoft.com - home of Xselerator (XSLT IDE and debugger)
http://www.topxml.com/Xselerator
"Pete" <pb*******@NOSPAMdiscovertravelandtours.com> wrote in message
news:be*******************@news.demon.co.uk...
Thankyou for your replies,

Yes you are correct the first link i give is not the same xml doc as the
second link - the second one has the style sheet applied. I included the
first link to show the original un-transformed xml page.

I have put the changes you suggest in place marrow but as you will see from the following link:
http://www.discovertravelandtours.co...?Location=Germ
any
The output is still "text"
Or at least it is displaying as text, the output may very well be XML and
structured as such but i dont seem to be able to view it that way?

Any ideas?

"Marrow" <marrow-NO-@-SPAM-marrowsoft.com> wrote in message
news:tR*****************@newsfep2-gui.server.ntli.net...
Hi Pete,
I have an XSLT file which should be transforming a straight XML file

http://www.discovertravelandtours.co...Location=Germa
ny

To another XML file

http://www.discovertravelandtours.co...?Location=Germ
any

Are you sure you have that the right way round? Looks like the second XML
document is the source (that being the one that has the stylesheet
reference - which is incorrect BTW - in it and the one that has a

<Booking>
root element as your XSLT code seems to be looking for).

Anyway, your stylesheet as it stands won't be producing well-formed XML
because there is no single root element.

Maybe your stylesheet should look like...

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="iso-8859-1"
indent="yes"/>
<xsl:template match = "/">
<root>
<xsl:for-each select="Booking/segment">
<segment>
<res>
<xsl:value-of select="ReservationNumber" />
</res>
<Nights>
<xsl:value-of select="NumberofDays" />
</Nights>
<MAdults>
<xsl:value-of select="NumberofMaleAdults" />
</MAdults>
<FAdults>
<xsl:value-of select="NumberofFemaleAdults" />
</FAdults>
<MChildren>
<xsl:value-of select="NumberofMaleChildren" />
</MChildren>
<FChildren>
<xsl:value-of select="NumberofFemaleChildren" />
</FChildren>
<From>
<xsl:value-of select="From" />
</From>
</segment>
</xsl:for-each>
</root>
</xsl:template>
</xsl:stylesheet>

Notice that you don't need to use <xsl:element> for what you are doing -
explicit output elements will be cleaner and usually faster (depending on the transformation engine used).

If you are transforming the other XML file then you just need to change... <xsl:for-each select="Booking/segment">
to...
<xsl:for-each select="root/segment">
NB. In your XML the stylesheet pi looks like...
<?xml:stylesheet type="text/xsl" href="test3.xsl"?>
but it should be...
<?xml-stylesheet type="text/xsl" href="test3.xsl"?>
(notice it's a hyphen rather than a semi-colon - I know IE will accept the first - but that's just an MS goof).

Hope this helps
Marrow
http://www.marrowsoft.com - home of Xselerator (XSLT IDE and debugger)
http://www.topxml.com/Xselerator
"Pete" <pb*******@NOSPAMdiscovertravelandtours.com> wrote in message
news:be*******************@news.demon.co.uk...
I am just getting to grips with XML and I was wondering if you could help
me
with something that no-one seems able or willing to help with..

I have an XSLT file which should be transforming a straight XML file

http://www.discovertravelandtours.co...Location=Germa ny

To another XML file

http://www.discovertravelandtours.co...?Location=Germ
any

As you can see the second one is not being output with the element

names I have defined in the XSLT, its just plain text.

The XSLT is given below, all I need is a bit of info on how to make it
output in the same way as the original file (plain xml).

<?xml version="1.0" encoding="UTF-8"?>

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

<xsl:output method="xml" version="1.0" encoding="iso-8859-1"

indent="yes"/>

<xsl:template match = "/">

<xsl:for-each select="Booking/segment">

<xsl:element name="res">

<xsl:value-of select="ReservationNumber" />

</xsl:element>

<xsl:element name="Nights">

<xsl:value-of select="NumberofDays" />

</xsl:element>

<xsl:element name="MAdults">

<xsl:value-of select="NumberofMaleAdults" />

</xsl:element>

<xsl:element name="FAdults">

<xsl:value-of select="NumberofFemaleAdults" />

</xsl:element>

<xsl:element name="MChildren">

<xsl:value-of select="NumberofMaleChildren" />

</xsl:element>

<xsl:element name="FChildren">

<xsl:value-of select="NumberofFemaleChildren" />

</xsl:element>

<xsl:element name="From">

<xsl:value-of select="From" />

</xsl:element>

</xsl:for-each>

</xsl:template>

</xsl:stylesheet>

Thanks in advance



Jul 20 '05 #5
Have a look at Marrow's XSLT IDE debugger (link below) or XML Spy if you are
looking for a development environment for XSLT.

Otherwise knickup a little VB program using MSXML to d othe transformation
or use one of the many commsnd line XSLT processors (e.g. SAXON)

Colin

"Pete" <pb*******@NOSPAMdiscovertravelandtours.com> wrote in message
news:be*******************@news.demon.co.uk...
Yes i am just trying to view the results of the transformation to ensure
that my elements have the new names etc...

Do you have any suggestions of other browsers?

Netscape 7 (latest) does not view it correctly either!

Pete

"Marrow" <marrow-NO-@-SPAM-marrowsoft.com> wrote in message
news:YR****************@newsfep2-win.server.ntli.net...
Hi Pete,

Ah, I see, that's an IE 'problem' - it always thinks that transformations
will produce HTML so it renders them as such (and because there are no
actual HTML tags in your output it just displays the text nodes). You get the same problem, for example, if you try to output SVG from a
transformation.

Is IE an integral part of what you're doing? Or are you just using it to view the transformation results - if so, try something else ;)

Cheers
Marrow
http://www.marrowsoft.com - home of Xselerator (XSLT IDE and debugger)
http://www.topxml.com/Xselerator
"Pete" <pb*******@NOSPAMdiscovertravelandtours.com> wrote in message
news:be*******************@news.demon.co.uk...
Thankyou for your replies,

Yes you are correct the first link i give is not the same xml doc as the second link - the second one has the style sheet applied. I included the first link to show the original un-transformed xml page.

I have put the changes you suggest in place marrow but as you will see from
the following link:

http://www.discovertravelandtours.co...?Location=Germ
any

The output is still "text"
Or at least it is displaying as text, the output may very well be XML and structured as such but i dont seem to be able to view it that way?

Any ideas?

"Marrow" <marrow-NO-@-SPAM-marrowsoft.com> wrote in message
news:tR*****************@newsfep2-gui.server.ntli.net...
> Hi Pete,
>
> > I have an XSLT file which should be transforming a straight XML file > >
> >
>

http://www.discovertravelandtours.co...Location=Germa
> ny
> >
> > To another XML file
> >
> >
>

http://www.discovertravelandtours.co...?Location=Germ
> any
>
> Are you sure you have that the right way round? Looks like the second XML
> document is the source (that being the one that has the stylesheet
> reference - which is incorrect BTW - in it and the one that has a
<Booking>
> root element as your XSLT code seems to be looking for).
>
> Anyway, your stylesheet as it stands won't be producing well-formed XML > because there is no single root element.
>
> Maybe your stylesheet should look like...
>
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> <xsl:output method="xml" version="1.0" encoding="iso-8859-1"
> indent="yes"/>
> <xsl:template match = "/">
> <root>
> <xsl:for-each select="Booking/segment">
> <segment>
> <res>
> <xsl:value-of select="ReservationNumber" />
> </res>
> <Nights>
> <xsl:value-of select="NumberofDays" />
> </Nights>
> <MAdults>
> <xsl:value-of select="NumberofMaleAdults" />
> </MAdults>
> <FAdults>
> <xsl:value-of select="NumberofFemaleAdults" />
> </FAdults>
> <MChildren>
> <xsl:value-of select="NumberofMaleChildren" />
> </MChildren>
> <FChildren>
> <xsl:value-of select="NumberofFemaleChildren" />
> </FChildren>
> <From>
> <xsl:value-of select="From" />
> </From>
> </segment>
> </xsl:for-each>
> </root>
> </xsl:template>
> </xsl:stylesheet>
>
> Notice that you don't need to use <xsl:element> for what you are doing - > explicit output elements will be cleaner and usually faster
(depending
on
> the transformation engine used).
>
> If you are transforming the other XML file then you just need to

change...
> <xsl:for-each select="Booking/segment">
> to...
> <xsl:for-each select="root/segment">
>
>
> NB. In your XML the stylesheet pi looks like...
> <?xml:stylesheet type="text/xsl" href="test3.xsl"?>
> but it should be...
> <?xml-stylesheet type="text/xsl" href="test3.xsl"?>
> (notice it's a hyphen rather than a semi-colon - I know IE will
accept the
> first - but that's just an MS goof).
>
> Hope this helps
> Marrow
> http://www.marrowsoft.com - home of Xselerator (XSLT IDE and

debugger) > http://www.topxml.com/Xselerator
>
>
> "Pete" <pb*******@NOSPAMdiscovertravelandtours.com> wrote in message
> news:be*******************@news.demon.co.uk...
> > I am just getting to grips with XML and I was wondering if you could help
> me
> > with something that no-one seems able or willing to help with..
> >
> > I have an XSLT file which should be transforming a straight XML file > >
> >
>

http://www.discovertravelandtours.co...Location=Germa
> ny
> >
> > To another XML file
> >
> >
>

http://www.discovertravelandtours.co...?Location=Germ
> any
> >
> > As you can see the second one is not being output with the element

names
I
> > have defined in the XSLT, its just plain text.
> >
> > The XSLT is given below, all I need is a bit of info on how to
make it > > output in the same way as the original file (plain xml).
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> >
> > <xsl:stylesheet version="1.0"
> > xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> >
> > <xsl:output method="xml" version="1.0" encoding="iso-8859-1"
> indent="yes"/>
> >
> > <xsl:template match = "/">
> >
> > <xsl:for-each select="Booking/segment">
> >
> > <xsl:element name="res">
> >
> > <xsl:value-of select="ReservationNumber" />
> >
> > </xsl:element>
> >
> > <xsl:element name="Nights">
> >
> > <xsl:value-of select="NumberofDays" />
> >
> > </xsl:element>
> >
> > <xsl:element name="MAdults">
> >
> > <xsl:value-of select="NumberofMaleAdults" />
> >
> > </xsl:element>
> >
> > <xsl:element name="FAdults">
> >
> > <xsl:value-of select="NumberofFemaleAdults" />
> >
> > </xsl:element>
> >
> > <xsl:element name="MChildren">
> >
> > <xsl:value-of select="NumberofMaleChildren" />
> >
> > </xsl:element>
> >
> > <xsl:element name="FChildren">
> >
> > <xsl:value-of select="NumberofFemaleChildren" />
> >
> > </xsl:element>
> >
> > <xsl:element name="From">
> >
> > <xsl:value-of select="From" />
> >
> > </xsl:element>
> >
> > </xsl:for-each>
> >
> > </xsl:template>
> >
> > </xsl:stylesheet>
> >
> >
> >
> > Thanks in advance
> >
> >
>
>



Jul 20 '05 #6
If i do a view source on netscape i do get to see the elements so its not
all that bad...
But the source is just that .. the source... not transformed so im still no
wiser as to wether my transform works...

I notice that the source is as follows:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="test4.xsl"?>
<Booking xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<segment><ReservationNumber>116290</ReservationNumber><NumberofDays>1</Numbe
rofDays><NumberofMaleAdults>0<....<etc>Which is basically the untransformed
doc, aim i correct in thinking that the actual source is transmitted to the
browser in xml rather than a server parsed page?Like asp / php which sends
you the rendered result?
"Pete" <pb*******@NOSPAMdiscovertravelandtours.com> wrote in message
news:be*******************@news.demon.co.uk...
Yes i am just trying to view the results of the transformation to ensure
that my elements have the new names etc...

Do you have any suggestions of other browsers?

Netscape 7 (latest) does not view it correctly either!

Pete

"Marrow" <marrow-NO-@-SPAM-marrowsoft.com> wrote in message
news:YR****************@newsfep2-win.server.ntli.net...
Hi Pete,

Ah, I see, that's an IE 'problem' - it always thinks that transformations
will produce HTML so it renders them as such (and because there are no
actual HTML tags in your output it just displays the text nodes). You get the same problem, for example, if you try to output SVG from a
transformation.

Is IE an integral part of what you're doing? Or are you just using it to view the transformation results - if so, try something else ;)

Cheers
Marrow
http://www.marrowsoft.com - home of Xselerator (XSLT IDE and debugger)
http://www.topxml.com/Xselerator
"Pete" <pb*******@NOSPAMdiscovertravelandtours.com> wrote in message
news:be*******************@news.demon.co.uk...
Thankyou for your replies,

Yes you are correct the first link i give is not the same xml doc as the second link - the second one has the style sheet applied. I included the first link to show the original un-transformed xml page.

I have put the changes you suggest in place marrow but as you will see from
the following link:

http://www.discovertravelandtours.co...?Location=Germ
any

The output is still "text"
Or at least it is displaying as text, the output may very well be XML and structured as such but i dont seem to be able to view it that way?

Any ideas?

"Marrow" <marrow-NO-@-SPAM-marrowsoft.com> wrote in message
news:tR*****************@newsfep2-gui.server.ntli.net...
> Hi Pete,
>
> > I have an XSLT file which should be transforming a straight XML file > >
> >
>

http://www.discovertravelandtours.co...Location=Germa
> ny
> >
> > To another XML file
> >
> >
>

http://www.discovertravelandtours.co...?Location=Germ
> any
>
> Are you sure you have that the right way round? Looks like the second XML
> document is the source (that being the one that has the stylesheet
> reference - which is incorrect BTW - in it and the one that has a
<Booking>
> root element as your XSLT code seems to be looking for).
>
> Anyway, your stylesheet as it stands won't be producing well-formed XML > because there is no single root element.
>
> Maybe your stylesheet should look like...
>
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> <xsl:output method="xml" version="1.0" encoding="iso-8859-1"
> indent="yes"/>
> <xsl:template match = "/">
> <root>
> <xsl:for-each select="Booking/segment">
> <segment>
> <res>
> <xsl:value-of select="ReservationNumber" />
> </res>
> <Nights>
> <xsl:value-of select="NumberofDays" />
> </Nights>
> <MAdults>
> <xsl:value-of select="NumberofMaleAdults" />
> </MAdults>
> <FAdults>
> <xsl:value-of select="NumberofFemaleAdults" />
> </FAdults>
> <MChildren>
> <xsl:value-of select="NumberofMaleChildren" />
> </MChildren>
> <FChildren>
> <xsl:value-of select="NumberofFemaleChildren" />
> </FChildren>
> <From>
> <xsl:value-of select="From" />
> </From>
> </segment>
> </xsl:for-each>
> </root>
> </xsl:template>
> </xsl:stylesheet>
>
> Notice that you don't need to use <xsl:element> for what you are doing - > explicit output elements will be cleaner and usually faster
(depending
on
> the transformation engine used).
>
> If you are transforming the other XML file then you just need to

change...
> <xsl:for-each select="Booking/segment">
> to...
> <xsl:for-each select="root/segment">
>
>
> NB. In your XML the stylesheet pi looks like...
> <?xml:stylesheet type="text/xsl" href="test3.xsl"?>
> but it should be...
> <?xml-stylesheet type="text/xsl" href="test3.xsl"?>
> (notice it's a hyphen rather than a semi-colon - I know IE will
accept the
> first - but that's just an MS goof).
>
> Hope this helps
> Marrow
> http://www.marrowsoft.com - home of Xselerator (XSLT IDE and

debugger) > http://www.topxml.com/Xselerator
>
>
> "Pete" <pb*******@NOSPAMdiscovertravelandtours.com> wrote in message
> news:be*******************@news.demon.co.uk...
> > I am just getting to grips with XML and I was wondering if you could help
> me
> > with something that no-one seems able or willing to help with..
> >
> > I have an XSLT file which should be transforming a straight XML file > >
> >
>

http://www.discovertravelandtours.co...Location=Germa
> ny
> >
> > To another XML file
> >
> >
>

http://www.discovertravelandtours.co...?Location=Germ
> any
> >
> > As you can see the second one is not being output with the element

names
I
> > have defined in the XSLT, its just plain text.
> >
> > The XSLT is given below, all I need is a bit of info on how to
make it > > output in the same way as the original file (plain xml).
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> >
> > <xsl:stylesheet version="1.0"
> > xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> >
> > <xsl:output method="xml" version="1.0" encoding="iso-8859-1"
> indent="yes"/>
> >
> > <xsl:template match = "/">
> >
> > <xsl:for-each select="Booking/segment">
> >
> > <xsl:element name="res">
> >
> > <xsl:value-of select="ReservationNumber" />
> >
> > </xsl:element>
> >
> > <xsl:element name="Nights">
> >
> > <xsl:value-of select="NumberofDays" />
> >
> > </xsl:element>
> >
> > <xsl:element name="MAdults">
> >
> > <xsl:value-of select="NumberofMaleAdults" />
> >
> > </xsl:element>
> >
> > <xsl:element name="FAdults">
> >
> > <xsl:value-of select="NumberofFemaleAdults" />
> >
> > </xsl:element>
> >
> > <xsl:element name="MChildren">
> >
> > <xsl:value-of select="NumberofMaleChildren" />
> >
> > </xsl:element>
> >
> > <xsl:element name="FChildren">
> >
> > <xsl:value-of select="NumberofFemaleChildren" />
> >
> > </xsl:element>
> >
> > <xsl:element name="From">
> >
> > <xsl:value-of select="From" />
> >
> > </xsl:element>
> >
> > </xsl:for-each>
> >
> > </xsl:template>
> >
> > </xsl:stylesheet>
> >
> >
> >
> > Thanks in advance
> >
> >
>
>



Jul 20 '05 #7

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

Similar topics

1
by: Victor | last post by:
Hi, this might sound silly but I cannot figure out how to incorporate some XML of employees into some XML of a company to give new XML containing...
12
by: gipsy boy | last post by:
Hello, I have sort of a big problem. I would really appreciate any help you could give me. I made a web service in C++ that throws XML to the...
5
by: Fred | last post by:
Not much expertise on XSLT and trying to understand it's uses when creating apps in VS.NET? If I wanted flexibility on the UI (View aspect of...
4
by: Chris Kettenbach | last post by:
Hi Peter, I get error when processing the stylesheet. It errors here. <xsl:for-each select="registration)=1]"> specifically: Expression...
4
by: Moogy | last post by:
I'm pulling my hair out here. First, I'm new to XML, so that doesn't help, but none of this makes any sense to me. All I'm trying to do is take a...
7
by: Harolds | last post by:
The code below worked in VS 2003 & dotnet framework 1.1 but now in VS 2005 the pmID is evaluated to "" instead of what the value is set to: .......
3
by: thomas.porschberg | last post by:
Hi, I want to read records from a database and export it in an arbitrary format. My idea was to feed a class with a String array fetched from...
18
by: yinglcs | last post by:
Hi, I have a newbie XSLT question. I have the following xml, and I would like to find out the children of feature element in each 'features'...
15
by: Jeff Uchtman | last post by:
Can I draw from 2 XML sources, the structure is exactly the same execpt for data contained into 1 xslt using math to add some structrure, and...
0
by: Naresh1 | last post by:
What is WebLogic Admin Training? WebLogic Admin Training is a specialized program designed to equip individuals with the skills and knowledge...
0
by: antdb | last post by:
Ⅰ. Advantage of AntDB: hyper-convergence + streaming processing engine In the overall architecture, a new "hyper-convergence" concept was...
2
by: Matthew3360 | last post by:
Hi, I have a python app that i want to be able to get variables from a php page on my webserver. My python app is on my computer. How would I make it...
0
by: Arjunsri | last post by:
I have a Redshift database that I need to use as an import data source. I have configured the DSN connection using the server, port, database, and...
0
hi
by: WisdomUfot | last post by:
It's an interesting question you've got about how Gmail hides the HTTP referrer when a link in an email is clicked. While I don't have the specific...
0
by: Matthew3360 | last post by:
Hi, I have been trying to connect to a local host using php curl. But I am finding it hard to do this. I am doing the curl get request from my web...
0
Oralloy
by: Oralloy | last post by:
Hello Folks, I am trying to hook up a CPU which I designed using SystemC to I/O pins on an FPGA. My problem (spelled failure) is with the...
0
BLUEPANDA
by: BLUEPANDA | last post by:
At BluePanda Dev, we're passionate about building high-quality software and sharing our knowledge with the community. That's why we've created a SaaS...
0
by: Rahul1995seven | last post by:
Introduction: In the realm of programming languages, Python has emerged as a powerhouse. With its simplicity, versatility, and robustness, Python...

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.