2015-07-02 6 views
0

позволяет сказать, что у меня есть следующий XMLКак применить предикат к GPATH, когда я использую XMLSlurper

<InvoiceLines> 
      <InvoiceLine> 
       <InsertionDate>29.01.2015</InsertionDate> 
       <Productnbr>0102</Productnbr> 
      </InvoiceLine> 
      <InvoiceLine> 
       <InsertionDate>29.02.2015</InsertionDate> 
       <Productnbr>0103</Productnbr> 
      </InvoiceLine> 
</InvoiceLines> 

, и я хотел бы получить дату вставки InvoiceLine, что имеет Productnbr = 0103. Если бы я написать XPath Я хотел бы написать Somthing как:

//InvoiceLine[./Productnbr='0103']/InsertionDate 

, но я хотел бы использовать GPATH, поскольку я использую XMLSlurper в моем коде. Есть ли способ применить предикат к GPath? Спасибо

ответ

0

Вы можете использовать дерево поиска с find, а затем получить значение это ребенок:

def date = new XmlSlurper().parseText(xml) 
          .'**' 
          .find { it.Productnbr == '0103' }?.InsertionDate 
+0

Спасибо! Это помогло – jazzyekim