Skip to content

Commit

Permalink
Improve XML rendering in preview
Browse files Browse the repository at this point in the history
XML can be rendered in the browser fine if we set the correct wrapper.
So rather than trying to do fancy stuff, just return the XML itself wrapped in a <pre> and <code> tag.

Fixes #114
  • Loading branch information
netwolfuk committed Oct 17, 2018
1 parent 5a20f32 commit 07b0599
Showing 1 changed file with 1 addition and 21 deletions.
Original file line number Diff line number Diff line change
@@ -1,35 +1,15 @@
package webhook.teamcity.payload.template.render;

import java.io.IOException;
import java.io.StringWriter;
import java.util.Map;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;

public class XmlToHtmlPrettyPrintingRenderer implements WebHookStringRenderer {


HtmlRenderer htmlr = new HtmlRenderer();

@Override
public String render(String uglyXmlString) throws WebHookHtmlRendererException {
try {
StringWriter sw = new StringWriter();
Document doc = DocumentHelper.parseText(uglyXmlString);
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter xw = new XMLWriter(sw, format);
xw.write(doc);
return "<pre><code clas=\"xml\">" + htmlr.render(sw.toString()) + "</code></pre>";
} catch (DocumentException ex){
throw new WebHookHtmlRendererException(ex);
} catch (IOException e) {
throw new WebHookHtmlRendererException(e);
}

return "<pre><code class=\"xml\">" + htmlr.render(uglyXmlString) + "</code></pre>";
}

@Override
Expand Down

0 comments on commit 07b0599

Please sign in to comment.