0

I am trying to find a placeholder in an ODT-Document. Therefor I am using the Apache ODF Toolkit - Simple API.

I created an odt-file containing the text $TestString. The following code is supposed to find it:

Document doc = TextDocument.loadDocument("path/to/test.odt");
TextNavigation search = new TextNavigation("$TestString", doc);
while (search.hasNext()) {
    TextSelection item = (TextSelection) search.nextSelection();
    System.out.println(item);
}

My Problem is, that this search doesn't find my String. But it works when I remove the $ from the TextNavigation (new TextNavigation("TestString", doc)).

The code then returns the output:

[TestString] started from 1 in paragraph:$TestString

What causes this error?

Yannick Huber
  • 607
  • 2
  • 16
  • 35

1 Answers1

0

It seems like the Problem was, that I have to escape the $-Symbol because it is used as a Regex (Check this question for more detail).

So changing the code to

TextNavigation search = new TextNavigation("\\$TestString", templateDoc);

solves the problem

Yannick Huber
  • 607
  • 2
  • 16
  • 35