cocoon-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "J.D. Williams" <jdwilli...@austin.rr.com>
Subject RE: XPathDirectory generator styling help
Date Fri, 10 Nov 2006 14:31:30 GMT
Hi Ard,

I did, in fact, get it to work with some tweaking of the xsl. The
snippets follow.

What I would like to do now is strip the ".xml" file extension from the
resulting href in the html. Suggestions?

Joe

P.S. Here is what works.

>>From this sitemap matcher...

<map:match pattern="articles/">
	<map:generate type="xpathdirectory" src="articles">
		<map:parameter name="xpath" value="/topic/title"/>
		<map:parameter name="xmlFiles" value="\.x.*$"/>
	</map:generate>
	<map:transform src="mydir2html.xsl"/>
	<map:serialize type="html"/>
</map:match>

...we get the title of each article for use as text in the resulting
html <a> element.

The following xsl...

    <xsl:template match="/dir:directory">
        <xsl:apply-templates select="dir:directory"/>
     </xsl:template>

    <xsl:template match="dir:directory">
        <xsl:apply-templates/>
    </xsl:template>
    
    <xsl:template match="dir:file">
        <xsl:element name="a">
            <xsl:attribute name="href">
                <xsl:value-of select="@name"/>
            </xsl:attribute>
            <xsl:apply-templates select="dir:xpath"/>
        </xsl:element>
    </xsl:template>
    
<xsl:template match="dir:xpath">
    <xsl:value-of select="title"/>
</xsl:template>

...uses the name attribute of each file in the XPathGenerator result as
the href of the <a> elements in the resulting html...

<html>
	<head>
	<title/>
	</head>

	<body>
	<table id="body">
	<tr>
	<td id="articles">
		<h4 class="menuheader">Articles</h4>
		<a href="article1.xml">Article the first</a>
		<a href="article2.xml">Article the second</a>
	</td>
	</tr>
	</table>
	</body>
</html>

...which is all ready for tweaking and CSS-ifying and whatever you want
to do to it.

On Mon, 2006-11-06 at 21:28 +0100, Ard Schrijvers wrote:
> Hello,
> 
> did you manage to get it to work? Think you have some problems with xml/xsl transformations.
Also take into account the namespaces. If you are still having problems, please let us know,
or subscribe to some xsl mailinglist, like http://www.mulberrytech.com/xsl/xsl-list/.
> 
> Your problem is only xsl related, not browser. 
> 
> Regards
> 
> 
> > 
> > I would like to be able to drop valid xml files into a directory and
> > have them appear automagically in a menu, with the ability to 
> > transform
> > the title of the article in the file into the text of a link 
> > if I want.
> > 
> > I get the XPathDirectory generator to work with the following pipeline
> > matcher.
> > 
> > <map:match pattern="articles/*">
> > 	<map:generate type="xpathdirectory" src="articles/{1}">
> > 		<map:parameter name="xpath" value="title"/>
> > 		<map:parameter name="xmlFiles" value="\.x.*$"/>
> > 	</map:generate>
> > 	<map:serialize type="xml"/>
> > </map:match>
> > 
> > The above matcher produces the following output.
> > 
> > <?xml version="1.0" encoding="ISO-8859-1"?>
> > <dir:directory xmlns:dir="http://apache.org/cocoon/directory/2.0"
> > name="articles" lastModified="1162301516000" date="31/10/06 07:31"
> > size="4096" sort="name" reverse="false" requested="true">
> > 	<dir:file name="article1.xml" lastModified="1162312230000"
> > date="31/10/06 10:30" size="136">
> > 		<dir:xpath query="title">
> > 			<title>Article title</title>
> > 		</dir:xpath>
> > 	</dir:file>
> > </dir:directory>
> > 
> > So far, so good. 
> > 
> > However, I would like to transform the XML so I can do other 
> > things with
> > it, such as a quick and dirty dynamic HTML menu or aggregate into
> > another web page as XML and subsequently transform the title elements
> > into links. I have attempted the following.
> > 
> > <xsl:template match="/">
> >     <xsl:apply-templates/>
> > </xsl:template>    
> >     
> >     <xsl:template match="article">
> >         <xsl:value-of select="title"/>
> >     </xsl:template>
> > 
> > When I add this XSL to the matcher, still serializing as XML 
> > I get this
> > result (when viewing the source).
> > 
> > <?xml version="1.0" encoding="ISO-8859-1"?>Article title
> > 
> > Which looks OK, but Firefox complains with the following error.
> > 
> > XML Parsing Error: syntax error
> > Location: http://localhost:8080/sandbox/articles/
> > Line Number 1, Column 44:<?xml version="1.0"
> > encoding="ISO-8859-1"?>Article title
> > 			-------------------------------------------^
> > Why is it encoded as ISO-8859-1? Everything in my sitemap says UTF-8.
> > 
> > This happens regardless of the charset I specify in Firefox. 
> > Amaya also
> > complains. 
> > 
> > 
> > 
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
> > For additional commands, e-mail: users-help@cocoon.apache.org
> > 
> > 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
> For additional commands, e-mail: users-help@cocoon.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org


Mime
View raw message