1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package fr.paris.lutece.plugins.xmlpage.util;
35
36 import fr.paris.lutece.plugins.xmlpage.service.XmlPageElement;
37 import fr.paris.lutece.plugins.xmlpage.service.XmlPageXslContent;
38 import fr.paris.lutece.portal.service.html.XmlTransformerService;
39 import fr.paris.lutece.portal.service.util.AppLogService;
40
41 import java.util.HashMap;
42 import java.util.Map;
43
44 import javax.xml.transform.stream.StreamSource;
45
46
47
48
49
50 public class XmlPageContentUtils
51 {
52 private static final String PARAMETER_XSL_URL_XMLPAGE = "urlXmlpage";
53 private static final String PARAMETER_XSL_PATH_RESOURCES = "pathResources";
54 private static final String PATH_SEPARATOR = "/";
55
56
57
58
59 protected XmlPageContentUtils( )
60 {
61
62 }
63
64
65
66
67
68
69
70
71
72 public static String getContent( XmlPageElement xmlPageElement, String strStyle, boolean tranformCache,
73 Map<String, String> mapParameters )
74 {
75 String strContent = "";
76
77 if ( xmlPageElement != null )
78 {
79 XmlPageXslContent xslContent = xmlPageElement.getXslContent( strStyle );
80
81 if ( xslContent != null )
82 {
83 AppLogService.debug( "getContent for " + strStyle + " for page " + xmlPageElement.getName( ) );
84
85 try
86 {
87 strContent = xslContent.getResultContent( );
88
89
90 if ( !tranformCache || ( strContent == null ) )
91 {
92
93 AppLogService.debug( "Transformation of XML File " + xmlPageElement.getName( ) + " using XSL" );
94
95 String strXmlFilePath = xmlPageElement.getXmlFilesDirectoryPath( ).concat( PATH_SEPARATOR )
96 .concat( xmlPageElement.getXmlFileName( ) );
97 String strXslFilePath = xmlPageElement.getXslFilesDirectoryPath( ).concat( PATH_SEPARATOR )
98 .concat( xslContent.getFileName( ) );
99
100 StreamSource sourceXml = new StreamSource( strXmlFilePath );
101 StreamSource sourceStyleSheet = new StreamSource( strXslFilePath );
102
103 Map<String, String> mapParams = new HashMap<String, String>( );
104 mapParams.put( PARAMETER_XSL_URL_XMLPAGE, xmlPageElement.getDisplayLink( ) );
105 mapParams.put( PARAMETER_XSL_PATH_RESOURCES, xmlPageElement.getResourceFilesDirectoryPath( ) );
106
107 if ( mapParameters != null )
108 {
109 mapParams.putAll( mapParameters );
110 }
111
112 XmlTransformerService xmlTransformerService = new XmlTransformerService( );
113 strContent = xmlTransformerService.transformBySourceWithXslCache( sourceXml, sourceStyleSheet,
114 strXslFilePath, mapParams, null );
115 xslContent.setResultContent( strContent );
116 }
117 }
118 catch ( Exception e )
119 {
120 AppLogService.error( e.getMessage( ), e );
121
122 return null;
123 }
124 }
125 }
126
127 return strContent;
128 }
129 }