Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> saxReaderUtil.createXPath("dynamic-element[@name='Entradilla']").selectSingleNode(rootES)  [in template "8191648#8191687#22791224" at line 91, column 41]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign entradillaES = saxReaderUtil...  [in template "8191648#8191687#22791224" in macro "printApartado" at line 91, column 17]
	- Reached through: @printApartado "", Noticias  [in template "8191648#8191687#22791224" at line 223, column 9]
----
1<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
2<#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext() /> 
3<#assign themeDisplay = serviceContext.getThemeDisplay() /> 
4 
5<#macro printApartado apartado contenidos> 
6 
7    <#if contenidos.getSiblings()?has_content> 
8 
9        <#assign imgTitulo = "" /> 
10        <#assign imgSeparador = "https://turismoprofesional.navarra.es/documents/8257989/22745023/linea-black.jpg" /> 
11        <#assign bgColor = "#ffffff" /> 
12        <#assign txtColor = "#000000" /> 
13 
14 
15        <#if apartado?lower_case?contains("ayudas")> 
16            <#assign imgTitulo = "https://turismoprofesional.navarra.es/documents/8257989/22745023/titulo_ayudas.jpg" /> 
17            <#assign imgSeparador = "https://turismoprofesional.navarra.es/documents/8257989/22745023/linea-blue.jpg" /> 
18            <#assign bgColor = "#51a7d8" /> 
19            <#assign txtColor = "#ffffff" /> 
20        <#elseif apartado?lower_case?contains("sostenibles")> 
21            <#assign imgTitulo = "https://turismoprofesional.navarra.es/documents/8257989/22745023/titulo_sostenibles.jpg/dbad7b94-479a-62e0-f15d-f7fb0625467c?t=1676467659834" /> 
22            <#assign imgSeparador = "https://turismoprofesional.navarra.es/documents/8257989/22745023/linea-green.jpg" /> 
23            <#assign bgColor = "#7fa366" /> 
24            <#assign txtColor = "#ffffff" /> 
25        <#elseif apartado?lower_case?contains("breves")> 
26            <#assign imgTitulo = "https://turismoprofesional.navarra.es/documents/8257989/22745023/titulo_breves.jpg" /> 
27            <#assign imgSeparador = "https://turismoprofesional.navarra.es/documents/8257989/22745023/linea-gray.jpg" /> 
28            <#assign bgColor = "#eeeeee" /> 
29            <#assign txtColor = "#000000" /> 
30        </#if> 
31 
32 
33        <#list contenidos.getSiblings() as curContenido> 
34						 
35            <#if apartado?lower_case?contains("ayudas")> 
36                <#assign jsonArticle = jsonFactoryUtil.createJSONObject(curContenido.Ayudas_Contenido.getData()) /> 
37                <#assign botonTextoES = curContenido.Ayudas_Boton.Ayudas_Boton_TextoES.getData() /> 
38                <#assign botonTextoEU = curContenido.Ayudas_Boton.Ayudas_Boton_TextoEU.getData() /> 
39                <#assign botonUrlES = curContenido.Ayudas_Boton.Ayudas_Boton_UrlES.getData() /> 
40                <#assign botonUrlEU = curContenido.Ayudas_Boton.Ayudas_Boton_UrlEU.getData() /> 
41                <#assign botonColor = curContenido.Ayudas_Boton.Ayudas_Boton_Color.getData() /> 
42            <#elseif apartado?lower_case?contains("sostenibles")> 
43                <#assign jsonArticle = jsonFactoryUtil.createJSONObject(curContenido.NoticiasSostenibles_Contenido.getData()) /> 
44                <#assign botonTextoES = curContenido.NoticiasSostenibles_Boton.NoticiasSostenibles_Boton_TextoES.getData() /> 
45                <#assign botonTextoEU = curContenido.NoticiasSostenibles_Boton.NoticiasSostenibles_Boton_TextoEU.getData() /> 
46                <#assign botonUrlES = curContenido.NoticiasSostenibles_Boton.NoticiasSostenibles_Boton_UrlES.getData() /> 
47                <#assign botonUrlEU = curContenido.NoticiasSostenibles_Boton.NoticiasSostenibles_Boton_UrlEU.getData() /> 
48                <#assign botonColor = curContenido.NoticiasSostenibles_Boton.NoticiasSostenibles_Boton_Color.getData() /> 
49            <#elseif apartado?lower_case?contains("breves")> 
50                <#assign jsonArticle = jsonFactoryUtil.createJSONObject(curContenido.Breves_Contenido.getData()) /> 
51                <#assign botonTextoES = curContenido.Breves_Boton.Breves_Boton_TextoES.getData() /> 
52                <#assign botonTextoEU = curContenido.Breves_Boton.Breves_Boton_TextoEU.getData() /> 
53                <#assign botonUrlES = curContenido.Breves_Boton.Breves_Boton_UrlES.getData() /> 
54                <#assign botonUrlEU = curContenido.Breves_Boton.Breves_Boton_UrlEU.getData() /> 
55                <#assign botonColor = curContenido.Breves_Boton.Breves_Boton_Color.getData() /> 
56            <#else> 
57                <#assign jsonArticle = jsonFactoryUtil.createJSONObject(curContenido.Noticias_Contenido.getData()) /> 
58                <#assign botonTextoES = curContenido.Noticias_Boton.Noticias_Boton_TextoES.getData() /> 
59                <#assign botonTextoEU = curContenido.Noticias_Boton.Noticias_Boton_TextoEU.getData() /> 
60                <#assign botonUrlES = curContenido.Noticias_Boton.Noticias_Boton_UrlES.getData() /> 
61                <#assign botonUrlEU = curContenido.Noticias_Boton.Noticias_Boton_UrlEU.getData() /> 
62                <#assign botonColor = curContenido.Noticias_Boton.Noticias_Boton_Color.getData() /> 
63            </#if> 
64 
65            <#if jsonArticle != "{}"> 
66                <#if curContenido?is_first && imgTitulo?has_content> 
67                    <tr> 
68                        <td colspan="2" bgcolor="${bgColor}" style="background-color: ${bgColor}; padding: 0;"> 
69                            <img src="${imgTitulo}" alt="${apartado}" style="width: 650px; max-width: 100%;"> 
70                        </td> 
71                    </tr>             
72                <#elseif !curContenido?is_first> 
73                    <tr> 
74                        <td colspan="2" bgcolor="${bgColor}" style="padding: 0;"> 
75                            <img src="${imgSeparador}" alt="" style="width: 650px; max-width: 100%;"> 
76                        </td> 
77                    </tr> 
78                </#if> 
79 
80                <#assign resourcePrimKey = jsonArticle.classPK?number /> 
81                <#assign curArticle = JournalArticleLocalService.fetchLatestArticle(resourcePrimKey)  /> 
82				<#assign viewURL = themeDisplay.getPortalURL() + "/es/-/" + curArticle.getUrlTitle() /> 
83				<#assign viewURLEU = themeDisplay.getPortalURL() + "/eu/-/" + curArticle.getUrlTitle() /> 
84 
85                <#assign rootES = saxReaderUtil.read(curArticle.getContentByLocale("es_ES")).getRootElement() /> 
86                <#assign rootEU = saxReaderUtil.read(curArticle.getContentByLocale("eu_ES")).getRootElement() /> 
87 
88                <#assign tituloES = curArticle.getTitle("es_ES") /> 
89                <#assign tituloEU = curArticle.getTitle("eu_ES") /> 
90 
91                <#assign entradillaES = saxReaderUtil.createXPath("dynamic-element[@name='Entradilla']").selectSingleNode(rootES).getStringValue()?trim /> 
92                <#assign entradillaEU = saxReaderUtil.createXPath("dynamic-element[@name='Entradilla']").selectSingleNode(rootEU).getStringValue()?trim /> 
93 
94                <#assign imagen = saxReaderUtil.createXPath("dynamic-element[@name='Imagenes']/dynamic-content").selectSingleNode(rootES).getStringValue()?trim /> 
95                <#if imagen?has_content> 
96                    <#assign imagenJson = jsonFactoryUtil.createJSONObject(imagen) /> 
97                    <#assign imagenURL = "https://turismoprofesional.navarra.es/documents/" + imagenJson.groupId + "/" + imagenJson.uuid /> 
98 
99                    <#if !imgTitulo?has_content && curContenido?is_first> 
100                        <tr> 
101                            <td colspan="2"> 
102                                <img src="${imagenURL}" width="650"> 
103                            </td> 
104                        </tr> 
105                    <#else> 
106                        <tr> 
107                            <td colspan="2" bgcolor="${bgColor}" style="background-color: ${bgColor}; padding: 0 20px 0 20px;"> 
108                                <img src="${imagenURL}" width="610"> 
109                            </td> 
110                        </tr> 
111                    </#if> 
112                </#if> 
113                 
114                <tr> 
115                    <td colspan="1" bgcolor="${bgColor}" style="width: 50%; padding: 30px 20px 30px 20px; vertical-align: initial;"> 
116                        <a href="${viewURL}" style="text-decoration: none;"> 
117							<p style="font-family: 'Bould', Arial, sans-serif; color: ${txtColor}; font-size: 24px; font-weight: 500; margin: 0 0 20px 0;"> 
118								${tituloES} 
119							</p> 
120							<#if entradillaES?has_content> 
121								<p style="font-family: 'Bould', Arial, sans-serif; color: ${txtColor}; font-size: 16px; margin: 20px 0 30px 0;"> 
122									${entradillaES} 
123								</p> 
124							</#if> 
125						</a> 
126                        <@printBoton botonTextoES botonUrlES botonColor bgColor txtColor /> 
127                    </td> 
128                    <td colspan="1" bgcolor="${bgColor}" style="width: 50%; padding: 30px 20px 30px 20px; vertical-align: initial;"> 
129                        <a href="${viewURLEU}" style="text-decoration: none;"> 
130							<p style="font-family: 'Bould', Arial, sans-serif; color: ${txtColor}; font-size: 24px; font-weight: 500; margin: 0 0 20px 0;"> 
131								${tituloEU} 
132							</p> 
133							<#if entradillaEU?has_content> 
134								<p style="font-family: 'Bould', Arial, sans-serif; color: ${txtColor}; font-size: 16px; margin: 20px 0 30px 0;"> 
135									${entradillaEU} 
136								</p> 
137							</#if> 
138						</a> 
139					    <@printBoton botonTextoEU botonUrlEU botonColor bgColor txtColor /> 
140                    </td> 
141                </tr> 
142 
143                <#if curContenido?is_last> 
144                    <tr> 
145                        <td colspan="2" bgcolor="#ffffff" style="height: 30px; background-color: #ffffff;"></td> 
146                    </tr> 
147                </#if> 
148            </#if> 
149        </#list> 
150    </#if> 
151</#macro> 
152 
153<#macro printBoton botonTexto botonUrl botonColor bgColor txtColor> 
154    <#if botonTexto?has_content && botonUrl?has_content && botonColor?has_content> 
155        <#if botonColor == "white">     
156            <div colspan="1" bgcolor="#ffffff" style="text-align: center; padding: 0.5em 1em; vertical-align: initial; background-color:#ffffff; border-radius: 25px;"> 
157                <a href="${botonUrl}" title="${botonTexto}" bgcolor="#ffffff" style="font-family: 'Bould', Arial, sans-serif; background-color: #ffffff; color: #000000; font-size: 16px; font-weight: 500; margin: 20px 0 0 0; text-decoration: none; padding: 0.5em 1em;"> 
158                    ${botonTexto} 
159                </a> 
160            </div> 
161        <#elseif botonColor == "black"> 
162            <div colspan="1" bgcolor="#000000" style="text-align: center; vertical-align: initial; background-color:#000000; border:10px solid #000000"> 
163                <a href="${botonUrl}" title="${botonTexto}" bgcolor="#000000" style="font-family: 'Bould', Arial, sans-serif; background: #000000; color: #ffffff; font-size: 16px; font-weight: 500; margin: 20px 0 0 0; text-decoration: none; padding: 0.5em 1em; "> 
164                    ${botonTexto} 
165                </a> 
166            </div> 
167        <#elseif botonColor == "gray"> 
168            <div colspan="1" bgcolor="#eeeeee" style="text-align: center; padding: 0.5em 1em; vertical-align: initial; background-color:#eeeeee; border-radius: 25px;"> 
169                <a href="${botonUrl}" title="${botonTexto}" bgcolor="#eeeeee" style="font-family: 'Bould', Arial, sans-serif; background-color: #eeeeee; color: #000000; font-size: 16px; font-weight: 500; margin: 20px 0 0 0; text-decoration: none; padding: 0.5em 1em;"> 
170                    ${botonTexto} 
171                </a> 
172            </div> 
173        <#elseif botonColor == "transparent"> 
174            <div colspan="1" bgcolor="${bgColor}" style="text-align: center; padding: 0.5em 1em; vertical-align: initial; background-color:${bgColor}; border: 2px solid ${txtColor}; border-radius: 25px;"> 
175                <a href="${botonUrl}" title="${botonTexto}" bgcolor="${bgColor}" style="font-family: 'Bould', Arial, sans-serif; background-color: ${bgColor}; color: ${txtColor}; font-size: 16px; font-weight: 500; margin: 20px 0 0 0; text-decoration: none; padding: 0.5em 1em;"> 
176                    ${botonTexto} 
177                </a> 
178            </div> 
179        <#elseif botonColor == "none"> 
180            <a href="${botonUrl}" title="${botonTexto}" style="font-family: 'Bould', Arial, sans-serif; color: ${txtColor}; font-size: 16px; font-weight: 500; margin: 20px 0 0 0; text-decoration: none;"> 
181                » ${botonTexto} 
182            </a> 
183        </#if> 
184    </#if> 
185</#macro> 
186 
187 
188<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
189<html xmlns="http://www.w3.org/1999/xhtml"> 
190	<head> 
191		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
192		<title>Newsletter Turismo Profesional</title> 
193		<meta name="viewport" content="width=device-width, initial-scale=1.0" /> 
194	</head> 
195</html> 
196 
197<body style="margin: 0; padding: 0;" > 
198	<table border="0" cellpadding="0" cellspacing="0" width="650" style="border-collapse: collapse; margin: 0 auto;" > 
199        <tr> 
200            <td colspan="2"> 
201                <small style="display: block; text-align: center; font-family: 'Bould', Arial, sans-serif; font-size: 0.7em; color: #aaa; padding: 0em 0em 1em 0em">Si no puede ver bien este boletín haga click <a href="https://turismoprofesional.navarra.es/es/ultimo-boletin" title="Último boletín de Turismo Profesional">aquí</a></small> 
202                <h1 style="margin: 0;"> 
203                    <a href="https://turismoprofesional.navarra.es/" title="Página de Turismo Profesional"> 
204                        <img width="650" src="https://turismoprofesional.navarra.es/documents/8257989/22745023/header.png/35f208b5-e4aa-87c1-fec2-868e27e27bf2?t=1718784306754" alt="Reyno de Navarra | Nafarroa ko Erresuma" style="width: 650px; max-width: 100%;"> 
205                    </a> 
206                </h1> 
207            </td> 
208        </tr> 
209 
210        <tr> 
211            <td colspan="1" bgcolor="#000000" style="background-color: #000000; padding: 5px 20px 5px 20px;"> 
212                <p style="font-family: 'Bould', Arial, sans-serif; color: #ffffff; font-size: 16px; font-weight: 500; text-align: left; margin: 0em 0em 0.5em 0em;"> 
213                    ${Cabecera.Fecha.getData()?date("yyyy-MM-dd")?string("dd/MM/yyyy")} 
214                </p> 
215            </td> 
216            <td colspan="1" bgcolor="#000000" style="background-color: #000000; padding: 5px 20px 5px 20px;"> 
217                <p style="font-family: 'Bould', Arial, sans-serif; color: #ffffff; font-size: 16px; font-weight: 500; text-align: right; margin: 0em 0em 0.5em 0em;"> 
218                    ${Cabecera.Fecha.getData()?date("yyyy-MM-dd")?string("yyyy/MM/dd")} 
219                </p> 
220            </td> 
221        </tr> 
222 
223        <@printApartado "" Noticias /> 
224        <@printApartado "Ayudas, planes y proyectos" Ayudas /> 
225        <@printApartado "Noticias sostenibles" NoticiasSostenibles /> 
226        <@printApartado "Breves" Breves /> 
227 
228        <#if Pie.Banner.getSiblings()?has_content> 
229            <#list Pie.Banner.getSiblings() as banner> 
230                <#if banner.Pie_Banner_Imagen.getData()?has_content && banner.Pie_Banner_Url.getData()?has_content> 
231                    <#if !banner?is_first> 
232                        <tr> 
233                            <td colspan="2" bgcolor="#ffffff" style="height: 30px; background-color: #ffffff;"></td> 
234                        </tr> 
235                    </#if> 
236 
237                    <tr> 
238                        <td colspan="2"> 
239                            <a href="${banner.Pie_Banner_Url.getData()}" title="${banner.Pie_Banner_Imagen.getAttribute('alt')}"> 
240                                <img src="https://turismoprofesional.navarra.es${banner.Pie_Banner_Imagen.getData()}" alt="" style="width: 650px; max-width: 100%;"> 
241                            </a> 
242                        </td> 
243                    </tr> 
244                     
245                    <#if banner?is_last> 
246                        <tr> 
247                            <td colspan="2" bgcolor="#ffffff" style="height: 30px; background-color: #ffffff;"></td> 
248                        </tr> 
249                    </#if> 
250                </#if> 
251            </#list> 
252        </#if> 
253 
254        <tr> 
255            <td colspan="2" bgcolor="#ffffff" style="padding: 20px; text-align: center;"> 
256                <a href="https://es.linkedin.com/showcase/turismopro/" title="Linkedin @turismopro" style="text-decoration: none; padding: 0 15px 0 15px;"> 
257                    <img src="https://turismoprofesional.navarra.es/documents/8257989/22745023/linkedin.svg/d383342e-9f3c-2163-d2d0-c19d5f2c289e?t=1718258156893" width="50" style="width: 50px"> 
258                </a> 
259                <a href="https://twitter.com/turismopro_na" title="Twitter @turismopro_na" style="text-decoration: none; padding: 0 15px 0 15px;"> 
260                    <img src="https://turismoprofesional.navarra.es/documents/8257989/22745023/square-x-twitter.svg/448dc8ec-7dcd-c021-21a7-8ac9e1f5eb68?t=1718258157103" width="50" style="width: 50px"> 
261                </a> 
262                <a href="https://www.youtube.com/playlist?list=PLbw-FEcX7Pe9QBO57H2tE8Ea74MK90SbD" title="@visitnavarra" style="text-decoration: none; padding: 0 15px 0 15px;"> 
263                    <img src="https://turismoprofesional.navarra.es/documents/8257989/22745023/square-youtube.svg/1dffb1bf-df0a-9048-9282-2f0b748be17c?t=1718258157254" width="50" style="width: 50px"> 
264                </a> 
265            </td> 
266        </tr> 
267 
268        <tr> 
269            <td colspan="2" bgcolor="#ffffff" style="background-color: #ffffff;"> 
270                <p style="font-family: 'Bould', Arial, serif; color: #000000; font-size: 13px; text-align: center;">Haz clic <a href="@unsubscribe_url@" style="color: #000000;">aquí</a> para darte de baja de la suscripción.</p> 
271            </td> 
272        </tr> 
273    </table>  
274</body>