我有一个如下所示的 XML 文档。当record_type ='VALID'时,我需要获取每个LOCATION_NAME 和FILE_TYPE 的记录数。LOCATION_NAME 和 FILY_TYPE 在参数中。对于这两个参数,我必须在 RECORD_TYPE='VALID' 时获取记录数。
我将为每次迭代(循环)提供一个 LOCATION_NAME 和一个 FILY_TYPE,并且需要计数。输入参数将由外部系统传递(本例中为 Tibco JDBC QUERY 结果)。
<root>
<SellOutRecord>
<FILE_TYPE>STOSO</FILE_TYPE>
<RECORD_TYPE>VALID</RECORD_TYPE>
<RECORD_NO>1</RECORD_NO>
<LOCATION_NAME>XYZ el</LOCATION_NAME>
</SellOutRecord>
<SellOutRecord>
<FILE_TYPE>STOSO</FILE_TYPE>
<RECORD_TYPE>ERROR</RECORD_TYPE>
<RECORD_NO>2</RECORD_NO>
<LOCATION_NAME>XYZ el</LOCATION_NAME>
</SellOutRecord>
<SellOutRecord>
<FILE_TYPE>STOSO</FILE_TYPE>
<RECORD_TYPE>VALID</RECORD_TYPE>
<RECORD_NO>3</RECORD_NO>
<LOCATION_NAME>XYZ el</LOCATION_NAME>
</SellOutRecord>
<SellOutRecord>
<FILE_TYPE>STOSO</FILE_TYPE>
<RECORD_TYPE>WARNING</RECORD_TYPE>
<RECORD_NO>3</RECORD_NO>
<LOCATION_NAME>XYZ el</LOCATION_NAME>
</SellOutRecord>
<SellOutRecord>
<FILE_TYPE>STOSO</FILE_TYPE>
<RECORD_TYPE>ERROR</RECORD_TYPE>
<RECORD_NO>4</RECORD_NO>
<LOCATION_NAME>XYZ el</LOCATION_NAME>
</SellOutRecord>
<SellOutRecord>
<FILE_TYPE>STOSO</FILE_TYPE>
<RECORD_TYPE>ERROR</RECORD_TYPE>
<RECORD_NO>6</RECORD_NO>
<LOCATION_NAME>XYZ XYZ</LOCATION_NAME>
</SellOutRecord>
<SellOutRecord>
<FILE_TYPE>STOSO</FILE_TYPE>
<RECORD_TYPE>VALID</RECORD_TYPE>
<RECORD_NO>7</RECORD_NO>
<LOCATION_NAME>XYZ XYZ</LOCATION_NAME>
</SellOutRecord>
<SellOutRecord>
<FILE_TYPE>STOSO</FILE_TYPE>
<RECORD_TYPE>VALID</RECORD_TYPE>
<RECORD_NO>8</RECORD_NO>
<LOCATION_NAME>XYZ XYZ</LOCATION_NAME>
</SellOutRecord>
<SellOutRecord>
<FILE_TYPE>STOSO</FILE_TYPE>
<RECORD_TYPE>ERROR</RECORD_TYPE>
<RECORD_NO>9</RECORD_NO>
<LOCATION_NAME>XYZ XYZ</LOCATION_NAME>
</SellOutRecord>
<SellOutRecord>
<FILE_TYPE>STOSO</FILE_TYPE>
<RECORD_TYPE>VALID</RECORD_TYPE>
<RECORD_NO>10</RECORD_NO>
<LOCATION_NAME>XYZ XYZ</LOCATION_NAME>
</SellOutRecord>
<InventoryRecord>
<FILE_TYPE>STOIV</FILE_TYPE>
<RECORD_TYPE>ERROR</RECORD_TYPE>
<RECORD_NO>2</RECORD_NO>
<LOCATION_NAME>XYZ el</LOCATION_NAME>
</InventoryRecord>
<InventoryRecord>
<FILE_TYPE>STOIV</FILE_TYPE>
<RECORD_TYPE>VALID</RECORD_TYPE>
<RECORD_NO>4</RECORD_NO>
<LOCATION_NAME>XYZ el</LOCATION_NAME>
</InventoryRecord>
<InventoryRecord>
<FILE_TYPE>STOIV</FILE_TYPE>
<RECORD_TYPE>VALID</RECORD_TYPE>
<RECORD_NO>5</RECORD_NO>
<LOCATION_NAME>XYZ el</LOCATION_NAME>
</InventoryRecord>
<InventoryRecord>
<FILE_TYPE>STOIV</FILE_TYPE>
<RECORD_TYPE>ERROR</RECORD_TYPE>
<RECORD_NO>8</RECORD_NO>
<LOCATION_NAME>XYZ XYZ</LOCATION_NAME>
</InventoryRecord>
<InventoryRecord>
<FILE_TYPE>STOIV</FILE_TYPE>
<RECORD_TYPE>ERROR</RECORD_TYPE>
<RECORD_NO>9</RECORD_NO>
<LOCATION_NAME>XYZ XYZ</LOCATION_NAME>
</InventoryRecord>
<InventoryRecord>
<FILE_TYPE>STOIV</FILE_TYPE>
<RECORD_TYPE>VALID</RECORD_TYPE>
<RECORD_NO>11</RECORD_NO>
<LOCATION_NAME>XYZ XYZ</LOCATION_NAME>
</InventoryRecord>
<InventoryRecord>
<FILE_TYPE>STOIV</FILE_TYPE>
<RECORD_TYPE>VALID</RECORD_TYPE>
<RECORD_NO>14</RECORD_NO>
<LOCATION_NAME>XYZ XYZ</LOCATION_NAME>
</InventoryRecord>
<SalesInRecord>
<FILE_TYPE>STOSI</FILE_TYPE>
<RECORD_TYPE>VALID</RECORD_TYPE>
<RECORD_NO>1</RECORD_NO>
<LOCATION_NAME>XYZ el</LOCATION_NAME>
</SalesInRecord>
<SalesInRecord>
<FILE_TYPE>STOSI</FILE_TYPE>
<RECORD_TYPE>ERROR</RECORD_TYPE>
<RECORD_NO>2</RECORD_NO>
<LOCATION_NAME>XYZ el</LOCATION_NAME>
</SalesInRecord>
<SalesInRecord>
<FILE_TYPE>STOSI</FILE_TYPE>
<RECORD_TYPE>VALID</RECORD_TYPE>
<RECORD_NO>3</RECORD_NO>
<LOCATION_NAME>XYZ el</LOCATION_NAME>
</SalesInRecord>
<SalesInRecord>
<FILE_TYPE>STOSI</FILE_TYPE>
<RECORD_TYPE>WARNING</RECORD_TYPE>
<RECORD_NO>3</RECORD_NO>
<LOCATION_NAME>XYZ el</LOCATION_NAME>
</SalesInRecord>
<SalesInRecord>
<FILE_TYPE>STOSI</FILE_TYPE>
<RECORD_TYPE>ERROR</RECORD_TYPE>
<RECORD_NO>4</RECORD_NO>
<LOCATION_NAME>XYZ el</LOCATION_NAME>
</SalesInRecord>
<SalesInRecord>
<FILE_TYPE>STOSI</FILE_TYPE>
<RECORD_TYPE>ERROR</RECORD_TYPE>
<RECORD_NO>7</RECORD_NO>
<LOCATION_NAME>XYZ XYZ</LOCATION_NAME>
</SalesInRecord>
<SalesInRecord>
<FILE_TYPE>STOSI</FILE_TYPE>
<RECORD_TYPE>VALID</RECORD_TYPE>
<RECORD_NO>8</RECORD_NO>
<LOCATION_NAME>XYZ XYZ</LOCATION_NAME>
</SalesInRecord>
<SalesInRecord>
<FILE_TYPE>STOSI</FILE_TYPE>
<RECORD_TYPE>WARNING</RECORD_TYPE>
<RECORD_NO>8</RECORD_NO>
<LOCATION_NAME>XYZ XYZ</LOCATION_NAME>
</SalesInRecord>
<SalesInRecord>
<FILE_TYPE>STOSI</FILE_TYPE>
<RECORD_TYPE>ERROR</RECORD_TYPE>
<RECORD_NO>10</RECORD_NO>
<LOCATION_NAME>XYZ XYZ</LOCATION_NAME>
</SalesInRecord>
</root>
例如,如果我提供 1. LOCATION_NAME=XYZ XYZ 和 FILE_TYPE='STOSI' 那么我应该得到 valid_rec_count=1 2. LOCATION_NAME=XYZ el 和 FILE_TYPE='STOIV' 那么我应该得到 valid_rec_count=2