Pregunta

Estoy tratando de usar las etiquetas c: import y x: parse dentro de una x: forEach.

¿Es esto posible?

Si no, ¿cuál es otra forma de importar múltiples fuentes xml dependiendo de los datos analizados de otra fuente 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>

Esto resulta en un

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

error, en el x: parse.

¿Fue útil?

Solución

Parece que esto simplemente no funcionará.

Terminé recorriendo el mapa del sitio xml y enviando los identificadores a un nuevo

<c:set>

variable, luego recorriendo eso con

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

cada archivo XML que necesitaba. Entonces, el núcleo de forEach lo permitirá, el xml forEach no lo hará.

Me doy cuenta de que esta es probablemente la forma incorrecta de solucionar este problema de todos modos, pero todavía no obtuve ninguna respuesta a esta pregunta. ¡Siéntase libre de ofrecer una alternativa!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top