Это немного новичок, но до сих пор я не смог найти ответ.Синтаксис синтаксиса XPath в чайнике 5.0.1
Я использую преобразование ввода «Получить данные из XML» в чайнике, и у меня возникли проблемы с пониманием синтаксиса для XPath.
Если посмотреть во всех образцах преобразований, похоже, что XPath указан довольно простым способом.
Если у меня есть файл XML, который имеет:
<A>
<B>
<C att1='fruit' att2='banana'>
</C>
<C att1='vegetable' att2='lettuce'>
</C>
</B>
</A>
И я хочу, чтобы получить att1 'плод', я просто введите следующее в поле XPath:
A/B/C/@att1
Однако, чайник не будет принимать этот синтаксис. Он настаивает на написании XPath как:
*[name()='A']/*[name()='B']/*[name()='C']/@att1
Это прекрасно. Однако, как только XPaths усложняются, например, когда я хочу использовать токены, я немного теряю их, как писать.
Скажите, теперь я хочу прочитать значение att2, но только если att1 является «растительным». Я бы написать это, с помощью маркера:
A/B/C[@att1='vegetable']/@att2
Но как бы я пишу это в синтаксисе чайника?
Кроме того, не уверен, если это уместно, но я бегу чайник 5.0.1 на Windows 7.
Любая помощь будет принята с благодарностью!
Могут ли быть проблемы пространства имен? I.e., есть ли декларация пространства имен в вашем документе? –
Похоже, что было объявление пространства имен в .. оно говорит .. это также влияет на дочерние узлы? и если да, как бы я указал токены в XPath? – user3100645
Вот [информация об объявлении пространства имен] (https://en.wikipedia.org/wiki/XML_namespace#Namespace_declaration). Вы либо должны создать пространство имен по умолчанию для своих выражений XPath, либо префикс пространства имен, который вы должны использовать с шагами XPath, например 'ns: A/ns: B/ns: C/@ att1'. Тем не менее, я понятия не имею, что такое Kettle, поэтому я не могу вообще помочь с настройкой. Возможно [это] (http://forum.spring.io/forum/spring-projects/web-services/70155-namespace-problems#post529890) может дать вам подсказку. –