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] XSLT Stylesheet Exclude Parental Search Results?

Just replace test="" by select="".

2009/1/23 Jack Bush <netbeansfan@yahoo.com.au>

Hi David,

 

Thank you for responding with such detail and enthusiasm.

 

Your suggestion make sense but I still encountered some error messages that needed further guidance with.

 

<xsl:stylesheet version="1.0"

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

xmlns:ns="http://www.w3.org/1999/xhtml"

exclude-result-prefixes="ns">

<xsl:template match="/">

<area>

<xsl:for-each test="/ns:html/ns:body/ns:div[@id='content']/ns:p/ns:strong">

<xsl:choose>

<xsl:when test="contains(.,'Firstname:')">

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

</xsl:when>

<xsl:otherwise>

<firstname>Unknown</firstname>

</xsl:otherwise>

</xsl:choose>

</xsl:for-each>>

</area>

</xsl:template>

</xsl:stylesheet>

 

XSLT Transformation output returned:

Error at xsl:for-each on line 10 of file:/C:/Documents and Settings/Jack/TestApplications/:

Attribute test is not allowed on this element

Error at xsl:for-each on line 10 of file:/C:/Documents and Settings/Jack/TestApplications/:

Element must have a "select" attribute

 

Any further suggestion would be appreciated.

Thanks again,

Jack




From: David Carlisle <davidc@nag.co.uk>
To: netbeansfan@yahoo.com.au
Cc: xml-dev@lists.xml.org
Sent: Friday, 23 January, 2009 12:07:45 AM
Subject: Re: [xml-dev] XSLT Stylesheet Exclude Parental Search Results?



<xsl:template match="/">
so the cntext here is the root of the document, ie the parent of the
html element.

<xsl:when test="contains(.,'Firstname:')">

so . here is the whole document and you are taking its string value,
which is all the character data in the document, ignoring all element
markup.  So if the file, anywhere contains the string 'Firstname:' and
it also has an element matching
/ns:html/ns:body/ns:div[@id='content']/ns:p/ns:strong"
then you do <xsl:value-of select="."/> which is the string value of teh
whole document.

a) you probably want to as on xsl-list rather than here and b) you want

somthing like


<xsl:for-each test="/ns:html/ns:body/ns:div[@id='content']/ns:p/ns:strong">
<xsl:choose>
<xsl:when test="contains(.,'Firstname:')">
<firstname><xsl:value-of select="."/></firstname>
</xsl:when>

so you are testing the strong element and outputting its content, not
testing the whole document.

David

________________________________________________________________________
The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.

This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs.
________________________________________________________________________


Stay connected to the people that matter most with a smarter inbox. Take a look.



[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