1 10 package org.mmbase.richtext.processors.xml; 11 import org.mmbase.datatypes.processors.xml.Modes; 12 import org.mmbase.datatypes.processors.*; 13 import org.mmbase.bridge.*; 14 import org.mmbase.bridge.util.xml.Generator; 15 import org.mmbase.bridge.Node; 16 import org.mmbase.util.logging.*; 17 import org.mmbase.util.*; 18 import org.mmbase.richtext.transformers.XmlField; 19 import org.mmbase.util.xml.XMLWriter; 20 import javax.xml.transform.dom.DOMSource ; 21 import javax.xml.transform.stream.StreamResult ; 22 import javax.xml.parsers.*; 23 24 import java.util.*; 25 import java.io.*; 26 import org.w3c.dom.*; 27 28 29 38 39 public class UnPGet implements Processor { 40 private static final Logger log = Logging.getLoggerInstance(UnPGet.class); 41 42 private static final int serialVersionUID = 1; 43 44 public Object process(Node node, Field field, Object value) { 45 if (value instanceof String ) { 47 String string = (String ) value; 48 if (string.startsWith("<p")) { 49 try { 50 Document realValue = node.getXMLValue(field.getName()); 51 java.net.URL u = ResourceLoader.getConfigurationRoot().getResource("xslt/text.xslt"); 52 StringWriter res = new StringWriter(); 53 XSLTransformer.transform(new DOMSource ((Document) realValue), u, new StreamResult (res), null); 54 string = res.toString(); 55 } catch (Exception e) { 56 log.warn(e); 57 string = e.getMessage(); 58 } 59 log.debug("Unhtml-lized " + string); 60 XmlField trans = new XmlField(XmlField.RICH); 62 value = trans.transformBack(string); 63 log.debug("MMXF-lized " + value); 64 return value; 65 } else { 66 return value; 67 } 68 } else if (value instanceof Document) { 69 Document xml = (Document) value; 70 if (xml.getDocumentElement().getTagName().equals("p")) { 71 String string; 72 try { 73 java.net.URL u = ResourceLoader.getConfigurationRoot().getResource("xslt/text.xslt"); 74 StringWriter res = new StringWriter(); 75 XSLTransformer.transform(new DOMSource (xml), u, new StreamResult (res), null); 76 string = res.toString(); 77 } catch (Exception e) { 78 log.warn(e); 79 string = e.getMessage(); 80 } 81 log.debug("Unhtml-lized " + string); 82 XmlField trans = new XmlField(XmlField.RICH); 84 value = trans.transformBack(string); 85 log.debug("MMXF-lized " + value); 86 try { 87 value = MmxfSetString.parse(value); 88 } catch (Exception e) { 89 log.warn(e); 90 return value; 91 } 92 return value; 93 } else { 94 return xml; 95 } 96 } else { 97 return value; 98 } 99 100 } 101 102 public String toString() { 103 return "get_unp"; 104 } 105 106 } 107 | Popular Tags |