Domanda

Sto cercando di usare i tag c: import e x: parse all'interno di un x: forEach.

È possibile?

In caso contrario, qual è un altro modo per importare più origini XML in base ai dati analizzati da un'altra fonte XML?

<x:forEach select="$sitemap/pages/page" varStatus="status">
    <x:set var="location_id" select="@id"/>
    <c:import url="xml/pages/page${location_id}.xml" var="location_xml_var"/>
    <x:parse var="location_xml" xml="${location_xml_var}" />

    <x:out select="$location_xml/pages/page/@name" escapeXml="false"/>

</x:forEach>

Ciò si traduce in un

javax.servlet.jsp.JspException: org.xml.sax.SAXParseException: Content is not allowed in prolog.

errore, sull'x: parse.

È stato utile?

Soluzione

Sembra che questo non funzioni.

Ho finito per scorrere ciclicamente il sitemap xml e restituire gli ID a un nuovo

<c:set>

variabile, quindi eseguendo il ciclo attraverso

<c:forEach> and <c:import>'ing

ogni file XML di cui avevo bisogno. Quindi il core forEach lo permetterà, il xml forEach non lo farà.

Mi rendo conto che questo è probabilmente il modo sbagliato di risolvere questo problema, ma non ho ancora ricevuto risposta a questa domanda. Sentiti libero di offrire un'alternativa!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top