JSTL c: import e x: analizza all'interno di x: forEach
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.
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