use of org.dom4j.io.OutputFormat in project cuba by cuba-platform.
the class XMLConverter2 method documentToString.
protected String documentToString(Document document) {
try {
OutputFormat format = OutputFormat.createPrettyPrint();
StringWriter sw = new StringWriter();
XMLWriter writer = new XMLWriter(sw, format);
writer.write(document);
return sw.toString();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
use of org.dom4j.io.OutputFormat in project pentaho-kettle by pentaho.
the class RssOutput method processRow.
public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException {
meta = (RssOutputMeta) smi;
data = (RssOutputData) sdi;
// this also waits for a previous step to be finished.
Object[] r = getRow();
if (r == null) {
if (!first) {
if (!meta.isCustomRss()) {
// No more input..so write and close the file.
WriteToFile(data.channeltitlevalue, data.channellinkvalue, data.channeldescriptionvalue, data.channelpubdatevalue, data.channelcopyrightvalue, data.channelimagelinkvalue, data.channelimagedescriptionvalue, data.channelimagelinkvalue, data.channelimageurlvalue, data.channellanguagevalue, data.channelauthorvalue);
} else {
// Write to document
OutputFormat format = org.dom4j.io.OutputFormat.createPrettyPrint();
// Set encoding ...
if (Utils.isEmpty(meta.getEncoding())) {
format.setEncoding("iso-8859-1");
} else {
format.setEncoding(meta.getEncoding());
}
try {
XMLWriter writer = new XMLWriter(new FileWriter(new File(data.filename)), format);
writer.write(data.document);
writer.close();
} catch (Exception e) {
// Ignore errors
} finally {
data.document = null;
}
}
}
setOutputDone();
return false;
}
if (first) {
first = false;
data.inputRowMeta = getInputRowMeta();
data.outputRowMeta = data.inputRowMeta.clone();
meta.getFields(data.outputRowMeta, getStepname(), null, null, this, repository, metaStore);
if (meta.isFilenameInField()) {
if (Utils.isEmpty(meta.getFileNameField())) {
logError(BaseMessages.getString(PKG, "RssOutput.Log.FilenameFieldMissing"));
setErrors(1);
stopAll();
return false;
}
// get filename field index
data.indexOfFieldfilename = data.inputRowMeta.indexOfValue(meta.getFileNameField());
if (data.indexOfFieldfilename < 0) {
// The field is unreachable !
logError(BaseMessages.getString(PKG, "RssOutput.Log.ErrorFindingField", meta.getFileNameField()));
throw new KettleException(BaseMessages.getString(PKG, "RssOutput.Log.ErrorFindingField", meta.getFileNameField()));
}
} else {
data.filename = buildFilename();
}
// Check if filename is empty..
if (Utils.isEmpty(data.filename)) {
logError(BaseMessages.getString(PKG, "RssOutput.Log.FilenameEmpty"));
throw new KettleException(BaseMessages.getString(PKG, "RssOutput.Log.FilenameEmpty"));
}
// Do we need to create parent folder ?
if (meta.isCreateParentFolder()) {
// Check for parent folder
FileObject parentfolder = null;
try {
// Get parent folder
parentfolder = KettleVFS.getFileObject(data.filename, getTransMeta()).getParent();
if (!parentfolder.exists()) {
if (log.isDetailed()) {
logDetailed(BaseMessages.getString(PKG, "RssOutput.Log.ParentFolderExists", parentfolder.getName().toString()));
}
parentfolder.createFolder();
if (log.isDetailed()) {
logDetailed(BaseMessages.getString(PKG, "RssOutput.Log.CanNotCreateParentFolder", parentfolder.getName().toString()));
}
}
} catch (Exception e) {
// The field is unreachable !
logError(BaseMessages.getString(PKG, "RssOutput.Log.CanNotCreateParentFolder", parentfolder.getName().toString()));
throw new KettleException(BaseMessages.getString(PKG, "RssOutput.Log.CanNotCreateParentFolder", parentfolder.getName().toString()));
} finally {
if (parentfolder != null) {
try {
parentfolder.close();
} catch (Exception ex) {
/* Ignore */
}
}
}
}
if (!meta.isCustomRss()) {
// Let's check for mandatory fields ...
if (Utils.isEmpty(meta.getChannelTitle())) {
logError(BaseMessages.getString(PKG, "RssOutput.Log.ChannelTitleMissing"));
setErrors(1);
stopAll();
return false;
}
if (Utils.isEmpty(meta.getChannelDescription())) {
logError(BaseMessages.getString(PKG, "RssOutput.Log.ChannelDescription"));
setErrors(1);
stopAll();
return false;
}
if (Utils.isEmpty(meta.getChannelLink())) {
logError(BaseMessages.getString(PKG, "RssOutput.Log.ChannelLink"));
setErrors(1);
stopAll();
return false;
}
// Let's take the index of channel title field ...
data.indexOfFieldchanneltitle = data.inputRowMeta.indexOfValue(meta.getChannelTitle());
if (data.indexOfFieldchanneltitle < 0) {
// The field is unreachable !
logError(BaseMessages.getString(PKG, "RssOutput.Log.ErrorFindingField", meta.getChannelTitle()));
throw new KettleException(BaseMessages.getString(PKG, "RssOutput.Log.ErrorFindingField", meta.getChannelTitle()));
}
data.channeltitlevalue = data.inputRowMeta.getString(r, data.indexOfFieldchanneltitle);
// Let's take the index of channel description field ...
data.indexOfFieldchanneldescription = data.inputRowMeta.indexOfValue(meta.getChannelDescription());
if (data.indexOfFieldchanneldescription < 0) {
// The field is unreachable !
logError(BaseMessages.getString(PKG, "RssOutput.Log.ErrorFindingField", meta.getChannelDescription()));
throw new KettleException(BaseMessages.getString(PKG, "RssOutput.Log.ErrorFindingField", meta.getChannelDescription()));
}
data.channeldescriptionvalue = data.inputRowMeta.getString(r, data.indexOfFieldchanneldescription);
// Let's take the index of channel link field ...
data.indexOfFieldchannellink = data.inputRowMeta.indexOfValue(meta.getChannelLink());
if (data.indexOfFieldchannellink < 0) {
// The field is unreachable !
logError(BaseMessages.getString(PKG, "RssOutput.Log.ErrorFindingField", meta.getChannelLink()));
throw new KettleException(BaseMessages.getString(PKG, "RssOutput.Log.ErrorFindingField", meta.getChannelLink()));
}
data.channellinkvalue = data.inputRowMeta.getString(r, data.indexOfFieldchannellink);
if (!Utils.isEmpty(meta.getItemTitle())) {
// Let's take the index of item title field ...
data.indexOfFielditemtitle = data.inputRowMeta.indexOfValue(meta.getItemTitle());
if (data.indexOfFielditemtitle < 0) {
// The field is unreachable !
logError(BaseMessages.getString(PKG, "RssOutput.Log.ErrorFindingField", meta.getItemTitle()));
throw new KettleException(BaseMessages.getString(PKG, "RssOutput.Log.ErrorFindingField", meta.getItemTitle()));
}
}
if (!Utils.isEmpty(meta.getItemDescription())) {
// Let's take the index of item description field ...
data.indexOfFielditemdescription = data.inputRowMeta.indexOfValue(meta.getItemDescription());
if (data.indexOfFielditemdescription < 0) {
// The field is unreachable !
logError(BaseMessages.getString(PKG, "RssOutput.Log.ErrorFindingField", meta.getItemDescription()));
throw new KettleException(BaseMessages.getString(PKG, "RssOutput.Log.ErrorFindingField", meta.getItemDescription()));
}
}
if (meta.AddGeoRSS()) {
if (Utils.isEmpty(meta.getGeoPointLong())) {
throw new KettleException(BaseMessages.getString(PKG, "RssOutput.Log.GeoPointLatEmpty"));
}
if (Utils.isEmpty(meta.getGeoPointLong())) {
throw new KettleException(BaseMessages.getString(PKG, "RssOutput.Log.GeoPointLongEmpty"));
}
// Let's take the index of item geopointX field ...
data.indexOfFielditempointx = data.inputRowMeta.indexOfValue(meta.getGeoPointLat());
if (data.indexOfFielditempointx < 0) {
// The field is unreachable !
logError(BaseMessages.getString(PKG, "RssOutput.Log.ErrorFindingField", meta.getGeoPointLat()));
throw new KettleException(BaseMessages.getString(PKG, "RssOutput.Log.ErrorFindingField", meta.getGeoPointLat()));
}
// Let's take the index of item geopointY field ...
data.indexOfFielditempointy = data.inputRowMeta.indexOfValue(meta.getGeoPointLong());
if (data.indexOfFielditempointy < 0) {
// The field is unreachable !
logError(BaseMessages.getString(PKG, "RssOutput.Log.ErrorFindingField", meta.getGeoPointLong()));
throw new KettleException(BaseMessages.getString(PKG, "RssOutput.Log.ErrorFindingField", meta.getGeoPointLong()));
}
}
// Channel PubDate field ...
if (!Utils.isEmpty(meta.getChannelPubDate())) {
data.indexOfFieldchannelpubdate = data.inputRowMeta.indexOfValue(meta.getChannelPubDate());
if (data.indexOfFieldchannelpubdate < 0) {
// The field is unreachable !
logError(BaseMessages.getString(PKG, "RssOutput.Log.ErrorFindingField", meta.getChannelPubDate()));
throw new KettleException(BaseMessages.getString(PKG, "RssOutput.Log.ErrorFindingField", meta.getChannelPubDate()));
}
data.channelpubdatevalue = data.inputRowMeta.getDate(r, data.indexOfFieldchannelpubdate);
}
// Channel Language field ...
if (!Utils.isEmpty(meta.getChannelLanguage())) {
data.indexOfFieldchannellanguage = data.inputRowMeta.indexOfValue(meta.getChannelLanguage());
if (data.indexOfFieldchannellanguage < 0) {
// The field is unreachable !
logError(BaseMessages.getString(PKG, "RssOutput.Log.ErrorFindingField", meta.getChannelLanguage()));
throw new KettleException(BaseMessages.getString(PKG, "RssOutput.Log.ErrorFindingField", meta.getChannelLanguage()));
}
data.channellanguagevalue = data.inputRowMeta.getString(r, data.indexOfFieldchannellanguage);
}
// Channel Copyright field ...
if (!Utils.isEmpty(meta.getChannelCopyright())) {
data.indexOfFieldchannelcopyright = data.inputRowMeta.indexOfValue(meta.getChannelCopyright());
if (data.indexOfFieldchannelcopyright < 0) {
// The field is unreachable !
logError(BaseMessages.getString(PKG, "RssOutput.Log.ErrorFindingField", meta.getChannelCopyright()));
throw new KettleException(BaseMessages.getString(PKG, "RssOutput.Log.ErrorFindingField", meta.getChannelCopyright()));
}
data.channelcopyrightvalue = data.inputRowMeta.getString(r, data.indexOfFieldchannelcopyright);
}
// Channel Author field ...
if (!Utils.isEmpty(meta.getChannelAuthor())) {
data.indexOfFieldchannelauthor = data.inputRowMeta.indexOfValue(meta.getChannelAuthor());
if (data.indexOfFieldchannelauthor < 0) {
// The field is unreachable !
logError(BaseMessages.getString(PKG, "RssOutput.Log.ErrorFindingField", meta.getChannelAuthor()));
throw new KettleException(BaseMessages.getString(PKG, "RssOutput.Log.ErrorFindingField", meta.getChannelAuthor()));
}
data.channelauthorvalue = data.inputRowMeta.getString(r, data.indexOfFieldchannelauthor);
}
// Channel Image field ...
if (meta.AddImage()) {
// Channel image title
if (!Utils.isEmpty(meta.getChannelImageTitle())) {
data.indexOfFieldchannelimagetitle = data.inputRowMeta.indexOfValue(meta.getChannelImageTitle());
if (data.indexOfFieldchannelimagetitle < 0) {
// The field is unreachable !
logError(BaseMessages.getString(PKG, "RssOutput.Log.ErrorFindingField", meta.getChannelImageTitle()));
throw new KettleException(BaseMessages.getString(PKG, "RssOutput.Log.ErrorFindingField", meta.getChannelImageTitle()));
}
data.channelimagetitlevalue = data.inputRowMeta.getString(r, data.indexOfFieldchannelimagetitle);
}
// Channel link title
if (!Utils.isEmpty(meta.getChannelImageLink())) {
data.indexOfFieldchannelimagelink = data.inputRowMeta.indexOfValue(meta.getChannelImageLink());
if (data.indexOfFieldchannelimagelink < 0) {
// The field is unreachable !
logError(BaseMessages.getString(PKG, "RssOutput.Log.ErrorFindingField", meta.getChannelImageLink()));
throw new KettleException(BaseMessages.getString(PKG, "RssOutput.Log.ErrorFindingField", meta.getChannelImageLink()));
}
data.channelimagelinkvalue = data.inputRowMeta.getString(r, data.indexOfFieldchannelimagelink);
}
// Channel url title
if (!Utils.isEmpty(meta.getChannelImageUrl())) {
data.indexOfFieldchannelimageurl = data.inputRowMeta.indexOfValue(meta.getChannelImageUrl());
if (data.indexOfFieldchannelimageurl < 0) {
// The field is unreachable !
logError(BaseMessages.getString(PKG, "RssOutput.Log.ErrorFindingField", meta.getChannelImageUrl()));
throw new KettleException(BaseMessages.getString(PKG, "RssOutput.Log.ErrorFindingField", meta.getChannelImageUrl()));
}
data.channelimageurlvalue = data.inputRowMeta.getString(r, data.indexOfFieldchannelimageurl);
}
// Channel description title
if (!Utils.isEmpty(meta.getChannelImageDescription())) {
data.indexOfFieldchannelimagedescription = data.inputRowMeta.indexOfValue(meta.getChannelImageDescription());
if (data.indexOfFieldchannelimagedescription < 0) {
// The field is unreachable !
logError(BaseMessages.getString(PKG, "RssOutput.Log.ErrorFindingField", meta.getChannelImageDescription()));
throw new KettleException(BaseMessages.getString(PKG, "RssOutput.Log.ErrorFindingField", meta.getChannelImageDescription()));
}
data.channelimagedescriptionvalue = data.inputRowMeta.getString(r, data.indexOfFieldchannelimagedescription);
}
}
// Item link field ...
if (!Utils.isEmpty(meta.getItemLink())) {
data.indexOfFielditemlink = data.inputRowMeta.indexOfValue(meta.getItemLink());
if (data.indexOfFielditemlink < 0) {
// The field is unreachable !
logError(BaseMessages.getString(PKG, "RssOutput.Log.ErrorFindingField", meta.getItemLink()));
throw new KettleException(BaseMessages.getString(PKG, "RssOutput.Log.ErrorFindingField", meta.getItemLink()));
}
}
// Item pubdate field ...
if (!Utils.isEmpty(meta.getItemPubDate())) {
data.indexOfFielditempubdate = data.inputRowMeta.indexOfValue(meta.getItemPubDate());
if (data.indexOfFielditempubdate < 0) {
// The field is unreachable !
logError(BaseMessages.getString(PKG, "RssOutput.Log.ErrorFindingField", meta.getItemPubDate()));
throw new KettleException(BaseMessages.getString(PKG, "RssOutput.Log.ErrorFindingField", meta.getItemPubDate()));
}
}
// Item author field ...
if (!Utils.isEmpty(meta.getItemAuthor())) {
data.indexOfFielditemauthor = data.inputRowMeta.indexOfValue(meta.getItemAuthor());
if (data.indexOfFielditemauthor < 0) {
// The field is unreachable !
logError(BaseMessages.getString(PKG, "RssOutput.Log.ErrorFindingField", meta.getItemAuthor()));
throw new KettleException(BaseMessages.getString(PKG, "RssOutput.Log.ErrorFindingField", meta.getItemAuthor()));
}
}
} else {
// Custom RSS
// Check Custom channel fields
data.customchannels = new int[meta.getChannelCustomFields().length];
for (int i = 0; i < meta.getChannelCustomFields().length; i++) {
data.customchannels[i] = data.inputRowMeta.indexOfValue(meta.getChannelCustomFields()[i]);
if (data.customchannels[i] < 0) {
throw new KettleStepException(BaseMessages.getString(PKG, "RssOutput.Exception.FieldRequired", meta.getChannelCustomFields()[i]));
}
}
// Check Custom channel fields
data.customitems = new int[meta.getItemCustomFields().length];
for (int i = 0; i < meta.getItemCustomFields().length; i++) {
data.customitems[i] = data.inputRowMeta.indexOfValue(meta.getItemCustomFields()[i]);
if (data.customitems[i] < 0) {
throw new KettleStepException(BaseMessages.getString(PKG, "RssOutput.Exception.FieldRequired", meta.getItemCustomFields()[i]));
}
}
// Prepare Output RSS Custom document
data.document = DocumentHelper.createDocument();
data.rssElement = data.document.addElement("rss");
data.rssElement.addAttribute("version", "2.0");
// add namespaces here ...
for (int i = 0; i < meta.getNameSpaces().length; i++) {
data.rssElement.addNamespace(environmentSubstitute(meta.getNameSpacesTitle()[i]), environmentSubstitute(meta.getNameSpaces()[i]));
}
// Add channel
data.channel = data.rssElement.addElement("channel");
// Set channel Only the first time ...
for (int i = 0; i < data.customchannels.length; i++) {
String channelname = environmentSubstitute(meta.getChannelCustomTags()[i]);
String channelvalue = data.inputRowMeta.getString(r, data.customchannels[i]);
if (log.isDetailed()) {
logDetailed("outputting channel value <" + channelname + ">" + channelvalue + "<" + channelname + "/>");
}
// add Channel
Element channeltag = data.channel.addElement(channelname);
channeltag.setText(channelvalue);
}
}
}
// Let's get value for each item...
if (!meta.isCustomRss()) {
String itemtitlevalue = null;
String itemauthorvalue = null;
String itemlinkvalue = null;
Date itemdatevalue = null;
String itemdescvalue = null;
String itemgeopointx = null;
String itemgeopointy = null;
if (data.indexOfFielditemtitle > -1) {
itemtitlevalue = data.inputRowMeta.getString(r, data.indexOfFielditemtitle);
}
if (data.indexOfFielditemauthor > -1) {
itemauthorvalue = data.inputRowMeta.getString(r, data.indexOfFielditemauthor);
}
if (data.indexOfFielditemlink > -1) {
itemlinkvalue = data.inputRowMeta.getString(r, data.indexOfFielditemlink);
}
if (data.indexOfFielditempubdate > -1) {
itemdatevalue = data.inputRowMeta.getDate(r, data.indexOfFielditempubdate);
}
if (data.indexOfFielditemdescription > -1) {
itemdescvalue = data.inputRowMeta.getString(r, data.indexOfFielditemdescription);
}
if (data.indexOfFielditempointx > -1) {
itemgeopointx = data.inputRowMeta.getString(r, data.indexOfFielditempointx);
}
if (data.indexOfFielditempointy > -1) {
itemgeopointy = data.inputRowMeta.getString(r, data.indexOfFielditempointy);
}
// Now add entry ..
if (!createEntry(itemauthorvalue, itemtitlevalue, itemlinkvalue, itemdatevalue, itemdescvalue, itemgeopointx, itemgeopointy)) {
throw new KettleException("Error adding item to feed");
}
} else {
// Set item tag at each row received
if (meta.isDisplayItem()) {
data.itemtag = data.channel.addElement("item");
}
for (int i = 0; i < data.customitems.length; i++) {
// get item value and name
String itemname = environmentSubstitute(meta.getItemCustomTags()[i]);
String itemvalue = data.inputRowMeta.getString(r, data.customitems[i]);
if (log.isDetailed()) {
logDetailed("outputting item value <" + itemname + ">" + itemvalue + "<" + itemname + "/>");
}
// add Item
if (meta.isDisplayItem()) {
Element itemtagsub = data.itemtag.addElement(itemname);
itemtagsub.setText(itemvalue);
} else {
// display item at channel level
Element temp = data.channel.addElement(itemname);
temp.setText(itemvalue);
}
}
}
try {
// in case we want it to go further...
putRow(data.outputRowMeta, r);
incrementLinesOutput();
if (checkFeedback(getLinesOutput())) {
if (log.isDebug()) {
logDebug(BaseMessages.getString(PKG, "RssOutput.Log.Linenr", "" + getLinesOutput()));
}
}
} catch (KettleStepException e) {
logError(BaseMessages.getString(PKG, "RssOutputMeta.Log.ErrorInStep") + e.getMessage());
setErrors(1);
stopAll();
// signal end to receiver(s)
setOutputDone();
return false;
}
return true;
}
use of org.dom4j.io.OutputFormat in project dq-easy-cloud by dq-open-cloud.
the class Dom4jTest method testRead.
@Test
public void testRead() throws Exception {
SAXReader reader = new SAXReader();
Document document = reader.read(new File(path));
Element root = document.getRootElement();
Element select = root.element("select");
System.out.println(select.getText());
select.setText(select.getText());
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter writer = new XMLWriter(new OutputStreamWriter(new FileOutputStream(path)), format);
writer.write(document);
writer.close();
}
use of org.dom4j.io.OutputFormat in project pentaho-platform by pentaho.
the class MondrianCatalogHelper method writeDataSources.
@Deprecated
protected void writeDataSources(DataSources dataSources) {
File dataSourcesFile;
try {
// dataSourcesConfigResource.getFile();
dataSourcesFile = new File(new URL(dataSourcesConfig).getFile());
} catch (IOException e) {
throw new MondrianCatalogServiceException(Messages.getInstance().getErrorString("MondrianCatalogHelper.ERROR_0005_RESOURCE_NOT_AVAILABLE"), e, // $NON-NLS-1$
Reason.GENERAL);
}
Writer sxml;
try {
sxml = new FileWriter(dataSourcesFile);
} catch (IOException e) {
throw new MondrianCatalogServiceException(e);
}
StringWriter sw = new StringWriter();
XMLOutput pxml = new XMLOutput(sw);
// $NON-NLS-1$
pxml.print("<?xml version=\"1.0\"?>\n");
dataSources.displayXML(pxml, 0);
Document doc = null;
try {
doc = XmlDom4JHelper.getDocFromString(sw.toString(), new PentahoEntityResolver());
} catch (XmlParseException e) {
throw new MondrianCatalogServiceException(e);
}
// pretty print
try {
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding(doc.getXMLEncoding());
XMLWriter writer = new XMLWriter(sxml, format);
writer.write(doc);
writer.close();
// CleanXmlHelper.saveDomToWriter(doc, sxml);
} catch (IOException e) {
throw new MondrianCatalogServiceException(e);
}
IOUtils.closeQuietly(sxml);
}
use of org.dom4j.io.OutputFormat in project cxf by apache.
the class DOM4JProvider method writeTo.
public void writeTo(org.dom4j.Document doc, Class<?> cls, Type type, Annotation[] anns, MediaType mt, MultivaluedMap<String, Object> headers, OutputStream os) throws IOException, WebApplicationException {
if (!convertAlways && mt.getSubtype().contains("xml")) {
XMLWriter writer;
if (MessageUtils.getContextualBoolean(getCurrentMessage(), SUPPRESS_XML_DECLARATION, false)) {
OutputFormat format = new org.dom4j.io.OutputFormat();
format.setSuppressDeclaration(true);
writer = new org.dom4j.io.XMLWriter(os, format);
} else {
writer = new org.dom4j.io.XMLWriter(os);
}
writer.write(doc);
writer.flush();
} else {
org.w3c.dom.Document domDoc = convertToDOM(doc);
MessageBodyWriter<org.w3c.dom.Document> writer = providers.getMessageBodyWriter(DOM_DOC_CLS, DOM_DOC_CLS, anns, mt);
if (writer == null) {
throw ExceptionUtils.toNotAcceptableException(null, null);
}
writer.writeTo(domDoc, DOM_DOC_CLS, DOM_DOC_CLS, anns, mt, headers, os);
}
}
Aggregations