JSTL c: импорт и x: синтаксический анализ внутри x:forEach
Вопрос
Я пытаюсь использовать теги c: import и x: parse в x:forEach.
Возможно ли это?
Если нет, то каков другой способ импортировать несколько источников xml в зависимости от проанализированных данных из другого источника 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>
Это приводит к
javax.servlet.jsp.JspException: org.xml.sax.SAXParseException: Content is not allowed in prolog.
ошибка, связанная с x:parse.
Решение
Похоже, это просто не сработает.
В итоге я прокрутил XML-файл sitemap и вывел идентификаторы в новый файл.
<c:set>
переменная, затем перебирающая ее с помощью
<c:forEach> and <c:import>'ing
каждый XML-файл, который мне был нужен.Таким образом, ядро forEach позволит это, xml forEach - нет.
Я понимаю, что это, вероятно, неправильный способ решения этой проблемы в любом случае, но я пока не получил никаких ответов на этот вопрос.Не стесняйтесь предлагать альтернативу!
Не связан с StackOverflow