xsl-list
[Top] [All Lists]

Re: [xsl] Predicates question

2011-12-17 08:24:24
You have a couple of other syntax errors, too.  You forgot to close
your "<xsl:value-of..." elements with "/>".  Try this:

<?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="UTF-8" indent="yes"/>
<xsl:template match="/">    <xsl:apply-templates
select="/bookstore/book[position()&lt;3]" />  </xsl:template>
<xsl:template match="bookstore/book">    <h1><xsl:value-of
select="title"/></h1>      <xsl:value-of select="price"/>
</xsl:template>  </xsl:stylesheet>
On Sat, Dec 17, 2011 at 8:58 AM, Wolfgang Laun 
<wolfgang(_dot_)laun(_at_)gmail(_dot_)com> wrote:

A basic requirement for writing XML (and XSLT is XML) is to represent
all '<' that are part of the data (element or attribute or other) as
&lt;

Another characters in the same category is '&', which must be written
as &amp. when it is a data character (and not part of a character
reference that begins with '&').

(You may also find '>' written as &gt;.)

There's also a construct known as CDATA section, which is a general
"escape" mechanism for element data. See /bookstore/book[2] for
details ;-)

-W

On 17 December 2011 14:39, Roelof Wobben <rwobben(_at_)hotmail(_dot_)com> 
wrote:


I have this small xml file :



<?xml version="1.0" encoding="ISO-8859-1"?>
 <bookstore>

 <book>
  <title lang="eng">Harry Potter</title>
  <price>29.99</price>
 </book>

 <book>
  <title lang="eng">Learning XML</title>
  <price>39.95</price>
 </book>

 </bookstore>



And now I want to show only a few books.

According to this page : http://www.w3schools.com/xpath/xpath_syntax.asp I 
can use this xslt :



<?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="UTF-8" indent="yes"/>

<xsl:template match="/">
  <xsl:apply-templates select="/bookstore/book[position()<3]" />
</xsl:template>

<xsl:template match="bookstore/book">
  <h1><xsl:value-of select="title"</h1>
  <xsl:value-of select="price"
</xsl:template>

</xsl:stylesheet>


But if I try this on xmlspy I get this message :



Character '<' is grammatically unexpected
 Reason: one of the following is expected (see below)
 '"'
 '&'
 '&#'
 '&#x'
 [^<&"]
 Details
 XML production: Production 'AttValue' not satisfied



What part did I misunderstood.



Roelof


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--