Estas en:

Pleno municipal

An error occurred while processing the template.
The following has evaluated to null or missing:
==> saxReaderUtil.createXPath("dynamic-element[@name='cargoPrincipal']").selectSingleNode(rootElement)  [in template "10114#2295845#4711943" at line 47, column 39]

----
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 cargoPrincipal = saxReaderUti...  [in template "10114#2295845#4711943" at line 47, column 13]
----
1<#-- 
2Plantilla Ayto Lena Concejales 
3 
4@author: Serinza Solutions EFG 2019 
5--> 
6 
7<style> 
8.article-list{ 
9display: table-header-group; 
10} 
11.cuadro-foto{ 
12	width: 33%; 
13	float: left; 
14} 
15.cuadro-resumen { 
16	display: inline-flex; 
17	width: 66%; 
18	padding: 0.2em; 
19} 
20.resumen{ 
21	text-justify:justify; 
22} 
23.cuadro-cargos { 
24	width: 100%; 
25	float: right; 
26	padding: 0.2em; 
27} 
28.grupos{ 
29	list-style:none; 
30} 
31.cargos{ 
32	margin: 15px; 
33} 
34</style> 
35 
36<#assign dlFileEntryService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")> 
37 
38<#if entries?has_content> 
39	<#list entries as entry> 
40	    <#assign assetRenderer = entry.getAssetRenderer() /> 
41	    <#assign journalArticle = assetRenderer.getArticle() /> 
42	    <#assign document = saxReaderUtil.read(journalArticle.getContentByLocale(locale)) /> 
43	    <#assign rootElement = document.getRootElement() /> 
44		 
45		<#assign resumen = saxReaderUtil.createXPath("dynamic-element[@name='resumen']").selectSingleNode(rootElement).getStringValue() /> 
46	    <#assign titulo = saxReaderUtil.createXPath("dynamic-element[@name='titulo']").selectSingleNode(rootElement).getStringValue() /> 
47	    <#assign cargoPrincipal = saxReaderUtil.createXPath("dynamic-element[@name='cargoPrincipal']").selectSingleNode(rootElement).getStringValue() /> 
48	    <#assign grupo = saxReaderUtil.createXPath("dynamic-element[@name='grupo']").selectSingleNode(rootElement).getStringValue() /> 
49	    <#assign email = saxReaderUtil.createXPath("dynamic-element[@name='email']").selectSingleNode(rootElement).getStringValue() /> 
50	     
51	    <#assign foto = saxReaderUtil.createXPath("dynamic-element[@name='foto']/dynamic-content").selectSingleNode(rootElement).getStringValue() /> 
52	    <#assign altImg = saxReaderUtil.createXPath("dynamic-element[@name='foto']/dynamic-element[@name='altImagen']").selectSingleNode(rootElement).getStringValue() /> 
53	     
54		<div class="article-list">	 
55		 
56	        <h3>${titulo}</h3> 
57	        <div class="cuadro-foto"> 
58    			<#if !validator.isBlank(foto)>	 
59                	<#if foto?starts_with("/")> 
60                		<#assign rutaImg = foto /> 
61                	<#else> 
62                		<#assign json_img = foto?eval /> 
63                		<#assign group_id = json_img.groupId />	   
64                		<#assign uuid = json_img.uuid />	     
65                		<#assign fileEntry = dlFileEntryService.getFileEntryByUuidAndGroupId(uuid, getterUtil.getLong(group_id)) /> 
66                		<#assign rutaImg = '/documents/' + group_id + '/'  + fileEntry.getClassPK() + '/'  + json_img.title  + '/'  + uuid /> 
67                	</#if> 
68                	<img src="${rutaImg}" alt="${altImg}" /> 
69                </#if> 
70			</div> 
71			 
72			<div class="cuadro-resumen"> 
73			<#if !validator.isBlank(resumen)> 
74					<p class="resumen">${resumen}</p>	 
75			</#if> 
76			</div> 
77			 
78	        <div class="cuadro-cargos"> 
79	        <#if !validator.isBlank(cargoPrincipal) || !validator.isBlank(grupo)> 
80		        <ul class="cargos"> 
81		        	<#if !validator.isBlank(cargoPrincipal?trim)> 
82						<li><strong>${cargoPrincipal}</strong></li> 
83					</#if> 
84			 
85			<#assign cargos = document.selectNodes( "//dynamic-element[@name='cargos']") /> 
86		 
87		 
88			<#if cargos?has_content> 
89				<#list cargos as cargo> 
90				 
91				<#assign comprueba = cargo.getStringValue()?trim = "" > 
92					<#if comprueba == false > 
93							<li class="subcargos">${cargo.getStringValue()}</li> 
94					<#else> 
95					</#if> 
96				</#list> 
97			</#if> 
98					 
99				</ul> 
100				 
101				<ul class="grupos"> 
102					<#if !validator.isBlank(grupo?trim)> 
103						<li>Grupo municipal: ${grupo}</li> 
104					</#if> 
105					<#if !validator.isBlank(email?trim)> 
106						<li>E-mail de contacto: <a href="mailto:${email}">${email}</a></li> 
107					</#if>		 
108					 
109				</ul> 
110	        </#if> 
111			</div> 
112		</div> 
113	</#list> 
114</#if>