By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
454,631 Members | 1,423 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 454,631 IT Pros & Developers. It's quick & easy.

XSLT parsing

P: n/a
Hi,

I have an XML file created by a third party in which an element with a
simple content model has a text value consisting of 2 parts separated by a
colon, like this

<link>machine:port</link>

Is XSLT capable of parsing the value of a <link> element, to separately
extract the portions before and after the colon?

Regards
David Walker
Jul 20 '05 #1
Share this Question
Share on Google+
6 Replies


P: n/a
*David Walker* wrote:
I have an XML file created by a third party in which an element with a
simple content model has a text value consisting of 2 parts separated
by a colon, like this

<link>machine:port</link>

Is XSLT capable of parsing the value of a <link> element, to
separately extract the portions before and after the colon?


Yes, e.g.:

<xsl:template match="link">
<xsl:choose>
<xsl:when test="contains(., ':')">
<xsl:text>Before = &quot;</xsl:text>
<xsl:value-of select="substring-before(., ':')"/>
<xsl:text>&quot;, after = &quot;</xsl:text>
<xsl:value-of select="substring-after(., ':')"/>
<xsl:text>&quot;</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="."/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>

--
Andrew Urquhart
- CIWAS CSS FAQ: www.css.nu/faq/ciwas-aFAQ.html
- CIWAS Archive: www.tinyurl.com/ysjbm (Google Groups)
- My reply address is invalid, use: www.andrewu.co.uk/contact/
Jul 20 '05 #2

P: n/a
"David Walker" <da***@cs.cf.ac.uk> wrote:
Hi,

I have an XML file created by a third party in which an element with a
simple content model has a text value consisting of 2 parts separated by a
colon, like this

<link>machine:port</link>

Is XSLT capable of parsing the value of a <link> element, to separately
extract the portions before and after the colon?


I suppose a question about XSLT is a bit more relevant to a group on
style sheets than to a group like, say, rec.knitting...but really,
what is this doing here?

--
Harlan Messinger
Remove the first dot from my e-mail address.
Veuillez ôter le premier point de mon adresse de courriel.
Jul 20 '05 #3

P: n/a
*Harlan Messinger* wrote:
*David Walker* wrote:
<link>machine:port</link>
Is XSLT capable of parsing the value of a <link> element, to
separately extract the portions before and after the colon?


I suppose a question about XSLT is a bit more relevant to a group on
style sheets than to a group like, say, rec.knitting...but really,
what is this doing here?


comp.infosystems.www.authoring. /stylesheets/

XSLT; extensible /stylesheet/ language transformations

CSS and XSLT are both stylesheets.
To quote the FAQ:

'At the moment, almost all discussion on this group relates to CSS,
although that might not always be so. This document does not aim
to be a complete tutorial in stylesheets or in CSS.'

Pragmatically speaking comp.text.xml is more applicable at the present
time, but that is not obvious given this newsgroups dual purpose name.
Personally I'd prefer to see a comp.text.xml.xslt group, XSLT being a
subset of XML.
--
Andrew Urquhart
- CIWAS CSS FAQ: www.css.nu/faq/ciwas-aFAQ.html
- Archive: www.tinyurl.com/ysjbm (Google Groups)
- My reply address is invalid, use: www.andrewu.co.uk/contact/
Jul 20 '05 #4

P: n/a

"Andrew Urquhart" <us**************************@spam.invalid> wrote in
message news:XhDAc.150$in5.136@newsfe1-win...
*Harlan Messinger* wrote:
*David Walker* wrote:
<link>machine:port</link>
Is XSLT capable of parsing the value of a <link> element, to
separately extract the portions before and after the colon?


I suppose a question about XSLT is a bit more relevant to a group on
style sheets than to a group like, say, rec.knitting...but really,
what is this doing here?


comp.infosystems.www.authoring. /stylesheets/

XSLT; extensible /stylesheet/ language transformations

CSS and XSLT are both stylesheets.
To quote the FAQ:

'At the moment, almost all discussion on this group relates to CSS,
although that might not always be so. This document does not aim
to be a complete tutorial in stylesheets or in CSS.'

Pragmatically speaking comp.text.xml is more applicable at the present
time, but that is not obvious given this newsgroups dual purpose name.
Personally I'd prefer to see a comp.text.xml.xslt group, XSLT being a
subset of XML.


Ah. Understood. I apologize.

Jul 20 '05 #5

P: n/a
"David Walker" <da***@cs.cf.ac.uk> wrote in message news:<ca**********@news.swman.net.uk>...
Hi,

I have an XML file created by a third party in which an element with a
simple content model has a text value consisting of 2 parts separated by a
colon, like this

<link>machine:port</link>

Is XSLT capable of parsing the value of a <link> element, to separately
extract the portions before and after the colon?

Regards
David Walker


David,

I suppose there are many ways of achieving that. Here is just one example:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:apply-templates select="link"/>
</xsl:template>
<xsl:template match="link">
<xsl:variable name="machine" select="substring-before( . , ':' ) "/>
<xsl:variable name="port" select="substring-after( . , ':' ) "/>
<xsl:element name="link">
<xsl:element name="machine">
<xsl:value-of select="$machine"/>
</xsl:element>
<xsl:element name="port">
<xsl:value-of select="$port"/>
</xsl:element>
</xsl:element>
</xsl:template>
</xsl:stylesheet>

This will transform Your example

<?xml version="1.0" encoding="UTF-8"?>
<link>machine:port</link>

To the following:

<?xml version="1.0" encoding="UTF-8"?>
<link>
<machine>machine</machine>
<port>port</port>
</link>

Is this something like You were after?

Rgds,

<kimmo/>
Jul 20 '05 #6

P: n/a
On Fri, 18 Jun 2004 08:47:42 -0400, Harlan Messinger
<hm*******************@comcast.net> wrote:
"David Walker" <da***@cs.cf.ac.uk> wrote: [...]
Is XSLT capable of parsing the value...

I suppose a question about XSLT is a bit more relevant to a group on
style sheets than to a group like, say, rec.knitting...but really,
what is this doing here?


This NG is not restricted to only discuss CSS, in fact any stylesheet
technology that is applicable to the www may be discussed here.

http://css.nu/faq/ciwas-mFAQ.html#C02

--
Rex

Jul 20 '05 #7

This discussion thread is closed

Replies have been disabled for this discussion.