Question

J'essaie d'utiliser les balises c: import et x: parse dans un x: forEach.

Est-ce possible?

Si non, quel autre moyen d'importer plusieurs sources XML en fonction des données analysées à partir d'une autre source 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>

Cela se traduit par un

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

erreur, sur le x: parse.

Était-ce utile?

La solution

On dirait que cela ne fonctionnera tout simplement pas.

J'ai fini par parcourir le sitemap xml et générer les identifiants vers un nouveau

<c:set>

variable, puis en boucle avec

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

chaque fichier XML dont j'avais besoin. Donc, le noyau forEach le permettra, le xml forEach ne le fera pas.

Je réalise que c’est probablement la mauvaise façon de traiter ce problème, mais je n’ai pas encore obtenu de réponse à cette question. N'hésitez pas à offrir une alternative!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top