cocoon-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Robin Green" <gree...@hotmail.com>
Subject Re: AGAIN DOM ERROR IN XSP
Date Thu, 26 Oct 2000 14:27:37 GMT
I'll answer your question at the end, but first this:

Look, you just don't seem to understand Cocoon very well. In the 
documentation it warns you, this is intended for people who already have a 
good grounding in XML technologies - and if you persist without trying to 
understand Cocoon properly, or if you cannot understand it properly, I will 
not bother to help you any more. I will only go so far.

Your .xml file, prova31.xml, is ALREADY parsed by Cocoon. There is 
absolutely no point in parsing it again, in the same way, in your code. 
Moreover, your code looks like it is doing something that could be done in a 
line or two in XSLT, very easily.

You need to rethink what you're trying to do. Splitting up XML into small 
pieces for WML devices, right?

Well, this is a non-trivial problem, and not something I would recommend for 
Cocoon beginners. Maybe you could start with something simpler. It's 
unfortunate that Cocoon is touted as a WML "solution" when it doesn't yet 
provide this feature.

The way I see it:

(A) If your individual pieces of content are all small enough to be served 
up to WML devices, it's easy. No need for any Java code. Just serve them up 
one at a time - select the one you want using XSLT. That's what it's for.

(B) If they are not all small enough, you may have problems (elements 
spanning pages, etc). And how to solve them depends on your application 
domain.

Which is it, A or B?



Okay now I'll answer your question. Method declarations need to be outside 
the page root element, which in your case is <OROSCOPO>.



marco <m.spinetti@pisa.iol.it> wrote:
>  You excuse my ignorance, but I do not succeed to solve the problem of
>the mistakes produced by the Cocoon when I insert of the code to do the
>Parsing of the Xml file. I have done the modifications you have
>suggested to me (Robin) but the mistakes remain: the modified file is
>the following.
>The code of the Parsing is nothing complicated: but the Cocoon I from
>the following mistakes:
>
>java.lang Excepyion: XSP Java Compiler: Compilation failed for
>prova31.java
>76:'}' expected.
>        );
>
>78:Statement expected.
>public String main(HttpServletRequest request) {
>
>115:Identifier expected.
>     xspParentNode = xspCurrentNode;
>
>3 errors
>....................................
>
>WHY?
>Where are the errors?
>Help me
>Marco
>m.spinetti@pisa.iol.it
>
><?xml version="1.0"?>
><xsl:stylesheet version="1.0" 
>xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
>xmlns:xsp="http://www.apache.org/1999/XSP/Core">
><xsl:param name='sceltau'/>
><xsl:param name='segnou'/>
><xsl:template match="Oroscopo">
><xsl:processing-instruction 
>name="cocoon-process">type="xsp"</xsl:processing-instruction>
><xsl:processing-instruction 
>name="cocoon-process">type="xslt"</xsl:processing-instruction>
><xsl:processing-instruction name="xml-stylesheet">href="stampa31-wml.xsl" 
>type="text/xsl"</xsl:processing-instruction>
><xsp:page xmlns:xsp="http://www.apache.org/1999/XSP/Core" 
>xmlns:request="http://www.apache.org/1999/XSP/Request" 
>xmlns:util="http://www.apache.org/1999/XSP/Util"  language="java" >
>
><xsp:logic>
>public String main (HttpServletRequest request) {
>	String segno = request.getParameter("segnou");
>	String scelta = request.getParameter("sceltau");
>	DOMParser parser = new DOMParser();
>	try {
>		parser.parse("/usr/local/jakarta-tomcat/webapps/cocoon/prova31.xml");
>		Document doc = parser.getDocument();
>		String res = analizza(doc);
>		return res;
>	} catch (Exception e) {
>		System.err.println("ERRORE NEL PARSING:"+e.getMessage() );
>	}
>}
>public String analizza ( Document doc) {
>	String err = "Non trovata nessuna corrispondenza";
>	boolean trovato = false;
>	Element elem = doc.getDocumentElement();
>	NodeList nl = elem.getElementsByTagName("Segno");
>	for ( int i=0; i&lt;nl.getLength(); i++) {
>		Element segno = (Element)nl.item(i);
>		NodeList nl1 = segno.getElementsByTagName("Zodiaco");
>		Node zodiaco = nl1.item(0);
>		if ( (((CharacterData)zodiaco.getFirstChild()).getData()).equals(segno)) 
>trovato=true;
>		if (trovato) {
>			trovato=false;
>			NodeList nl2 = segno.getElementsByTagName("Generale");
>			Element generale = (Element)nl2.item(0);
>			NodeList nl3 = generale.getElementsByTagName("Descrizione");
>			Node descrizione = nl3.item(0);
>			String s = (((CharacterData)descrizione.getFirstChild()).getData());
>			return s;
>		}
>	}
>	return err;
>}
>
></xsp:logic>
><xsl:for-each select="child::Segno[Zodiaco/text()=$segnou]">
><SEGNO immagine="{./Image/@immagine}">
><xsl:value-of select="$segnou"/>
></SEGNO>
></xsl:for-each>
><xsl:for-each select="child::Segno[Zodiaco/text()=$segnou]">
><PRESO>
>Siamo entrati: ultima prova
></PRESO>
><xsl:choose>
><xsl:when test="$sceltau='generale'">
><CORPO>
><xsp:expr>main(request)</xsp:expr>
></CORPO>
></xsl:when>
><xsl:when test="$sceltau='amore'">
><CORPO>
><xsp:expr>main(request)</xsp:expr>
></CORPO>
></xsl:when>
><xsl:when test="$sceltau='denaro'">
><CORPO>
><xsp:expr>main(request)</xsp:expr>
></CORPO>
></xsl:when>
><xsl:when test="$sceltau='fortuna'">
><CORPO>
><xsp:expr>main(request)</xsp:expr>
></CORPO>
></xsl:when>
></xsl:choose>
></xsl:for-each>
></OROSCOPO>
></xsp:page>
></xsl:template>
></xsl:stylesheet>
><?xml version="1.0"?>
><?cocoon-process type="xslt"?>
><?xml-stylesheet href="prova.xsl" type="text/xsl" media="wap"?>
><?xml-stylesheet href="oroscopo-html.xsl" type="text/xsl"?>
>
><Oroscopo>
>   <!-- ARIETE -->
>   <Segno code="01">
>      <Image immagine="/cocoon/images/ariete.wbmp"/>
>      <Zodiaco>Ariete</Zodiaco>
>      <Generale>
>          <Andamento value="0"/>
>	 <Descrizione>
>	 Per gli Arieti anno nuovo sorge con Giove in transito nel segno, e ci 
>resta fino a febbraio.
>          </Descrizione>
>      </Generale>
>      <Aspetto code="Amore">
>          <Andamentoapetto value="0"/>
>          <Descrizioneaspetto>
>          Ariete: anno inizia con una serie di incontri quasi magici, 
>architettati per voi dal destino. Attenzione alla primavera: avrete una 
>carica di energia e di ottimismo davvero esagerata.
>          </Descrizioneaspetto>
>      </Aspetto>
>      <Aspetto code="Lavoro e Denaro">
>          <Andamentoaspetto value="0"/>
>          <Descrizioneaspetto>
>          Ariete: anno inizia sotto i migliori auspici di Giove. il momento 
>di raccogliere tutte le occasioni lavorative che vi offre la vita.
>          </Descrizioneaspetto>
>      </Aspetto>
>      <Aspetto code="Fortuna">
>          <Andamentoaspetto value="0"/>
>          <Descrizioneaspetto>
>	 Ariete: La fortuna si manifesta in maniera evidente per tutto il 2000.
>	 </Descrizioneaspetto>
>      </Aspetto>
>   </Segno>
>   <!-- TORO -->
>     <Segno code="01">
>      <Image immagine="/cocoon/images/toro.wbmp"/>
>      <Zodiaco>Toro</Zodiaco>
>      <Generale>
>          <Andamento value="0"/>
>	 <Descrizione>
>	 Per il Toro anno nuovo sorge con Giove in transito nel segno, e ci resta 
>fino a febbraio.
>          </Descrizione>
>      </Generale>
>      <Aspetto code="Amore">
>          <Andamentoapetto value="0"/>
>          <Descrizioneaspetto>
>          Toro: anno inizia con una serie di incontri quasi magici, 
>architettati per voi dal destino. Attenzione alla primavera: avrete una 
>carica di energia e di ottimismo davvero esagerata.
>          </Descrizioneaspetto>
>      </Aspetto>
>      <Aspetto code="Lavoro e Denaro">
>          <Andamentoaspetto value="0"/>
>          <Descrizioneaspetto>
>          Toro:anno inizia sotto i migliori auspici di Giove. il momento di 
>raccogliere tutte le occasioni lavorative che vi offre la vita.
>          </Descrizioneaspetto>
>      </Aspetto>
>      <Aspetto code="Fortuna">
>          <Andamentoaspetto value="0"/>
>          <Descrizioneaspetto>
>	 Toro: La fortuna si manifesta in maniera evidente per tutto il 2000.
>	 </Descrizioneaspetto>
>      </Aspetto>
>   </Segno>
>
>
></Oroscopo>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: cocoon-users-unsubscribe@xml.apache.org
>For additional commands, e-mail: cocoon-users-help@xml.apache.org

_________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.

Share information about yourself, create your own public profile at 
http://profiles.msn.com.


Mime
View raw message