2016-06-14 6 views
0

cust_JiraTaskIdの検索方法と出力方法を教えてください。内部ノードの最大数に基づいてcust_JiraTaskIdの値が必要です。この例では111111になります。パスxの値を見つける方法Groovy

私は最大externalCodeを見つけることができました。これでcust_JiraTaskId値が必要になります。

<SFOData.cust_JiraReplication> 
<cust_HRISId>J000009</cust_HRISId> 
<externalCode>7</externalCode> 
<cust_JiraTask> 
    <externalCode>3</externalCode> 
    <cust_JiraTaskId>12345</cust_JiraTaskId> 
</cust_JiraTask> 
<cust_JiraTask> 
    <externalCode>5</externalCode> 
    <cust_JiraTaskId>111111</cust_JiraTaskId> 
</cust_JiraTask> 
</SFOData.cust_JiraReplication> 

私のスクリプトは、助けを

// Create an XPath statement to search for the 
element or elements you care   about: 
XPath x; 
x = XPath.newInstance("//cust_JiraTask/externalCode"); 
myElements = x.selectNodes(doc); 
String maxvalue = ""; 
for (Element myElement : myElements) { 
if (myElement.getValue() > maxvalue) 
{ 
    maxvalue = myElement.getValue(); 
} 
} 
props.setProperty("document.dynamic.userdefined.externalCode", maxvalue); 

以下のおかげです。

答えて

0

これは、Groovyの2.4.5で私の作品:

def xml = """ 
<SFOData.cust_JiraReplication> 
<cust_HRISId>J000009</cust_HRISId> 
<externalCode>7</externalCode> 
<cust_JiraTask> 
    <externalCode>3</externalCode> 
    <cust_JiraTaskId>12345</cust_JiraTaskId> 
</cust_JiraTask> 
<cust_JiraTask> 
    <externalCode>5</externalCode> 
    <cust_JiraTaskId>111111</cust_JiraTaskId> 
</cust_JiraTask> 
</SFOData.cust_JiraReplication> 
""" 

def xs = new XmlSlurper().parseText(xml) 

def nodes = xs.cust_JiraTask.cust_JiraTaskId 

def maxNode = nodes.max { it.text() as int } 
assert 111111 == maxNode.text() as int 
関連する問題