Ops, this code was debug:

            if (loopObj instanceof Text) {
                if (!((Text) loopObj).getValue().trim().equals("")) {
                    String pippo = "";
                }
            }

You can ignore it.

Any idea for replace elements in header and footer?

I'm thinking to merge styles and replace content of styles.xml in raw
way...okok...i know, it's a dirty way! :)

On 21 Feb, 15:59, "jOpenDocument, Guillaume" <[email protected]>
wrote:
> Hi,
>
> Thanks for sharing this sample code, I bet it will be useful.
>
> Regards,
> Guillaume
>
> > If someone can be of interest I wrote a method to overwrite a text
> > content with an additional odt.
>
> >      private void callExample() throws Exception {
> >          File file1 = new File("resources/source.odt");
> >          ODSingleXMLDocument source =
> > ODSingleXMLDocument.createFromFile(file1);
> >          replaceStringWithDocument(source, "[TEMPLATE:INCLUDE
> > FILE=TOINCLUDE.ODT]", "resources/toInclude.odt");
> >          source.saveAs(new File("resources/result.odt"));
> >      }
>
> >      private void replaceStringWithDocument(ODSingleXMLDocument source,
> > String searchString, String includedDocumentName) throws Exception {
> >          if (!(source == null || searchString.equals("") ||
> > includedDocumentName.equals(""))) {
> >              Element body = source.getBody();
> >              Element toReplaceElement = getElement(body, searchString);
>
> >              if (toReplaceElement != null) {
> >                  File includedDocumentFile = new
> > File(includedDocumentName);
> >                  ODSingleXMLDocument includedDocument =
> > ODSingleXMLDocument.createFromFile(includedDocumentFile);
> >                  source.replace(toReplaceElement, includedDocument);
> >              }
> >          }
> >      }
>
> >      private Element getElement(Element el, String searchString) {
> >          List contents = el.getContent();
> >          Object loopObj;
> >          Element recursiveEl;
> >          for (int i = 0; i<  contents.size(); i++) {
> >              loopObj = contents.get(i);
> >              if (loopObj instanceof Text) {
> >                  if (!((Text) loopObj).getValue().trim().equals("")) {
> >                      String pippo = "";
> >                  }
> >              }
> >              if ((loopObj instanceof Text)&&  (((Text)
> > loopObj).getValue().equals(searchString))) {
> >                  return el;
> >              } else if ((loopObj instanceof Element)&&  (((Element)
> > loopObj).getContent() != null)) {
> >                  recursiveEl = getElement((Element) loopObj,
> > searchString);
> >                  if (recursiveEl != null) {
> >                      return recursiveEl;
> >                  }
> >              }
> >          }
> >          return null;
> >      }
>
> > I recursively look for the input string  in the xml body tree, then i
> > use the method "replace" of ODSingleXMLDocument.
>
> > Now I'm trying to do the same thing with the items in the header and
> > footer. The problem is that these are contained in the office:master-
> > styles element in the styles.xml file.
>
> > In your opinion, is it possible?
>
> > Thanks,
> > Gabriele

Reply via email to