XML.orgXML.org
FOCUS AREAS |XML-DEV |XML.org DAILY NEWSLINK |REGISTRY |RESOURCES |ABOUT
OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
Re: [xml-dev] XSTL stylesheet workarounds for exceptions

Gentlemen,

 

Thank you for your suggestions and I finally worked out the reason why the 2 values fishing, rabbit were not been picked up after debugging. It turned out that there are two different types of Hobbie(s) elements which is shown as follows:

<p>

  <strong>Hobbie:</strong>

  <a shape="rect" href=http://www.hobbies.com/fishing title="Shark Hunting">fishing</a>

(Out-door adventures)

</p>

<p>

  <strong>Hobbies:</strong>

  <a shape="rect" href=http://www.hobbies.com/fishing title="Shark Hunting">fishing</a>

  <a shape="rect" href=http://www.hobbies.com/hunting title="Animal">rabbit</a>

(Out-door adventures)

</p>

The only difference between the 2 matching pattern elements is the additional letter 's'. I used the following matching patterns to pick up all values for both elements:

 

<xsl:template match="ns:p[ns:strong='Hobbie:']|ns:p[ns:strong='Hobbies:']">

<xsl:for-each select="ns:a">

<hobbie><xsl:value-of select="."/></hobbie>

</xsl:for-each>

</xsl:template>

Note that the matching name Hobbie is only an arbitray name that I used in position for the actual element name. As a result, it was not as obvious to distinguish between Hobby and Hobbies.

 

Now the only question left is the second half ( ii ) of the original post included below:

 

( ii ) I also like to add a default generic value for any missing element. Say if there are no

<p><strong>Hobbies:</strong></p> in such document, yet I still would like to generate a

null element such as <hobbies>Unknown</hobbies>. The intended stylesheet should look

like the following but couldn’t get it working still:

<xsl:template match="/">

<employee>

<xsl:apply-templates select="//ns:p"/>

</employee>

</xsl:template>

<xsl: choose>

<xsl: when test="ns:p[ns:strong='Hobbies:']">

<xsl:template match="ns:p[ns:strong='Hobbies:']">

<xsl:for-each select="text()[normalize-space() != '']">

<hobbies><xsl:value-of select="normalize-space()"/></hobbies>

</xsl:for-each>

</xsl:template>

</xsl:when>

<xsl:otherwise>

<hobbies>Unknown</hobbies>

</xsl:otherwise>

</xsl: choose>

 

However, this syntax does not conform with XSLT stylesheet.

Any suggestion would be much appreciated.

Thanks again,

Jack




From: Michael Kay <mike@saxonica.com>
To: Jack Bush <netbeansfan@yahoo.com.au>; xml-dev@lists.xml.org
Sent: Wednesday, 4 February, 2009 12:40:53 AM
Subject: RE: [xml-dev] XSTL stylesheet workarounds for exceptions

 
My next step would be to debug this stylesheet but any other suggestion would be more than welcome.
 
 
I rather assumed that you only posted to the list after failing to debug the stylesheet.
 
Your next step might be to post a complete but minimal source document and stylesheet that demonstrate the problem.
 
Michael Kay
http://www.saxonica.com/


Make Yahoo!7 your homepage and win a trip to the Quiksilver Pro. Find out more.

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 1993-2007 XML.org. This site is hosted by OASIS