Попытка разобрать xml ниже в NiFi и хотела бы разобрать все идентификаторы и сделать несколько вызовов веб-службы для каждого идентификатора.
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
</soap:Header>
<soap:Body>
<store-Ids>
<Id>69E32281-0484</Id>
<Id>3002AFCD-B494</Id>
<Id>2C9E17AC-9D97</Id>
<Id>98E8EB10-7D6A</Id>
<Id>F8D5F93C-1455</Id>
<Id>98655C3F-B58C</Id>
<Id>8AE4FD0A-6000</Id>
<Id>E56FE4CA-0D83</Id>
</store-Ids>
</soap:Body>
</soap:Envelope>
Есть ли способ проанализировать все идентификаторы внутри тегов идентификаторов?В виде массива (69E32281-0484, 3002AFCD-B494 .............) или в виде строки (69E32281-0484 3002AFCD-B4942C9E17AC-9D97 ...............) с использованием процессоров Evaluate-XPath или Evaluate-xQuery?
//*[local-name()='Id']/text() -------- This gives me only the 1st id. and
//*[local-name()='Id'][2]/text() ------- This gives the 2nd id and so on....
//Id -------------------------------- This returns "Empty string set"
Поскольку число идентификаторов будет динамическим.Невозможно жестко закодировать значение счетчика, например [0], [1], [2] ........, чтобы получить значение каждого идентификатора.
PS: есть много другихспособы сделать это в NiFi.Но хотелось бы узнать, есть ли способ прочитать XML с помощью процессора EvaluateXpath и получить все значения тега id в виде массива или в виде текста.
Ссылки по теме
1) https://community.hortonworks.com/questions/101922/how-to-use-evaluatexpath-to-get-xml-roots-attribut.html
2) https://community.hortonworks.com/questions/140605/evaluatexpath-cant-return-multiple-node-values.html