Это может быть или верблюд или вопрос xpath :).Примечание для не верблюжьих людей: верблюд использует javax.xml.xpath для разрешения их xml.
На пути к верблюду я пытаюсь извлечь элемент из тела xml, чтобы использовать его в качестве моего имени файла:
Namespaces ns = getNamespaces();
String fileIDxPath = (see notes);
from("direct:testOutToFile")
.setHeader(Exchange.FILE_NAME, ns.xpath(fileIDxPath))
.to("file:/tmp/testing/generatedXML");
Но я не могу получить xpath, который дает мне усеченное значение узла.Вот xpath, который я пробовал:
A) //rm:TradeMsg/rm:Submitter/rm:partyTradeIdentifier/fpml:tradeId/
B) //rm:TradeMsg/rm:Submitter/rm:partyTradeIdentifier/fpml:tradeId/text()
C) //rm:TradeMsg/rm:Submitter/rm:partyTradeIdentifier/fpml:tradeId/text()[normalize-space()]
D) normalize-space(//rm:TradeMsg/rm:Submitter/rm:partyTradeIdentifier/fpml:tradeId/text())
- A) Возвращает весь узел, а не только значение
- B) Возвращает значение, но с множеством пробелов
- C) Также возвращает значение со всеми пробелами
- D) Выдает XPathExpressionException
Вопрос для гуру xpath - я что-то упустилв моем xpath что бы обрезать это значение?
Вопрос для верблюжьих гуру - может быть, я могу обрезать это значение после его оценки?Я знаю, что мог бы пройти через еще один шаг, но я думаю, что это будет достаточно распространенный вариант использования, который будет поддерживаться в самом вызове ns.xpath.
Я также заметил, что ns.xpath устанавливаетзаголовок экземпляра 'com.sun.org.apache.xml.internal.dtm.ref.DTMNodeList' вместо String, который будет ожидаемым типом.
Спасибо всем,
Рой