Имея следующую структуру XML:
<Data>
line 1
line 2 and some text
</Data>
Я бы хотел получить содержимое узла Данные , используя xpath // Data / text ()
Однако выполнение xpath с использованием s9api приводит к следующей строке:
line 1
line 2 and some text
Где сохраняются новые строки и двойные пробелы.Это был бы тот результат, который я хотел получить, если бы узел Data содержал свое значение в разделе CDATA, но это не так.
После фрагмента Java, используемого для выполнения xpath на узле данных:
XPathExecutable exp = xPathCompiler.compile("text()");
XPathSelector selector = exp.load();
selector.setContextItem(item);
XdmItem evaluateSingle = selector.evaluateSingle();
result = evaluateSingle == null ? null : evaluateSingle.getStringValue();
Я бы хотел, чтобы результирующий пробел нормализовался: строка 1, строка 2 и некоторый текст
Конечно, я мог бы использовать xpath // Data / normalize-space () , чтобы получить нормализованную строку, однако желательно определить это программно: сохранить пробелы, когда CDATAsection используется в XML и в противном случае нормализует результат.
Есть ли способ узнать, следует ли сохранять пробелы при выполнении xpath с использованием s9api?Или какое-нибудь предложение, как решить эту проблему?
Другими словами: когда пробелы значительны, я бы хотел их сохранить, в противном случае пробелы следует нормализовать.