Static Public Member Functions | |
String | prettyXml (String xml) throws Exception |
String | applyXsl (String xml, String xsl) |
File | internationalizeXsl (File xsl) throws Exception |
Static Package Attributes | |
Trace | logger |
Definition at line 52 of file XmlTools.java.
|
Apply xslt to xml
Definition at line 82 of file XmlTools.java. 00083 { 00084 try 00085 { 00086 StringWriter result = new StringWriter(); 00087 if (tFactory == null) 00088 tFactory = TransformerFactory.newInstance(); 00089 File infoXsl = internationalizeXsl(new File(URLDecoder 00090 .decode(XmlTools.class.getResource("/" + xsl).getFile()))); 00091 if (logger.isDebugEnabled()) 00092 logger.debug(Translate.get("controller.xml.use.xsl", infoXsl)); 00093 //if(infoTransformer==null) 00094 infoTransformer = tFactory.newTransformer(new StreamSource(infoXsl)); 00095 infoTransformer.transform(new StreamSource(new StringReader(xml)), 00096 new StreamResult(result)); 00097 return result.toString(); 00098 } 00099 catch (Exception e) 00100 { 00101 String msg = Translate.get("controller.xml.transformation.failed", e); 00102 00103 if (logger.isDebugEnabled()) 00104 logger.debug(msg, e); 00105 logger.error(msg); 00106 return msg; 00107 } 00108 }
|
|
Transform the xsl file so that it is internationalized.
Definition at line 117 of file XmlTools.java. 00118 { 00119 int point = xsl.getAbsolutePath().lastIndexOf('.'); 00120 String xslPath = xsl.getAbsolutePath(); 00121 xslPath = xslPath.substring(0, point) + "_" + Locale.getDefault() 00122 + xslPath.substring(point); 00123 File i18nXsl = new File(xslPath); 00124 if (i18nXsl.exists() == false) 00125 { 00126 ResourceBundle rb = ResourceBundle.getBundle("c-jdbc-xsl"); 00127 BufferedReader br = new BufferedReader(new FileReader(xsl)); 00128 String xml = ""; 00129 String oi18n = "<i18n>"; 00130 String ci18n = "</i18n>"; 00131 int oi18nl = oi18n.length(); 00132 int ci18nl = oi18nl + 1; 00133 StringBuffer buffer = new StringBuffer(); 00134 String i18n = ""; 00135 while ((xml = br.readLine()) != null) 00136 { 00137 int indexOpen = 0, indexClose = 0; 00138 while ((indexOpen = xml.indexOf(oi18n)) != -1) 00139 { 00140 indexClose = xml.indexOf(ci18n); 00141 i18n = xml.substring(indexOpen + oi18nl, indexClose).trim(); 00142 try 00143 { 00144 i18n = rb.getString(i18n); 00145 } 00146 catch (Exception ignore) 00147 // if the key has no match return the key itself 00148 { 00149 } 00150 xml = xml.substring(0, indexOpen) + i18n 00151 + xml.substring(indexClose + ci18nl); 00152 } 00153 buffer.append(xml + System.getProperty("line.separator")); 00154 } 00155 BufferedWriter bw = new BufferedWriter(new FileWriter(i18nXsl)); 00156 bw.write(buffer.toString()); 00157 bw.flush(); 00158 bw.close(); 00159 } 00160 return i18nXsl; 00161 }
|
|
Indent xml with xslt
Definition at line 70 of file XmlTools.java. 00071 { 00072 return applyXsl(xml, "c-jdbc-pretty.xsl"); 00073 }
|
|
Initial value: Trace.getLogger(XmlTools.class .getName()) Definition at line 56 of file XmlTools.java. |