Я хочу преобразовать файл XML в CSV, но моя проблема в том, что я не знаю, как выбрать тег, родительский тег которого генерируется динамически, и он может встречаться несколько раз с одним и тем же именем, но его содержание меняется,Я имею в виду, что тег ComponentDetails может появляться для каждого сотрудника один или несколько раз.В моем случае для staffNumber 12345 ComponentDetails появляются 2 раза, а для staffNumber 45555 ComponentDetails 3 раза, и я хочу выбрать значение из тега зарплаты, но не могу его идентифицировать.Я присвоил тэгу идентификатор, но основная проблема заключается в том, что, поскольку ComponentDetails варьируется, поэтому я не могу определить, в какой позиции появится ComponentType.
Мой XML-файл выглядит следующим образом:
<?xml version="1.0" encoding="UTF-8"?><root>
<PayrunDetails>
<PayrunNumber>000777</PayrunNumber>
<PaidDate>2018-05-15</PaidDate>
</PayrunDetails>
<PayLocation>
<LocationCode>ACT</LocationCode>
<LocationDescription>ACT</LocationDescription>
<CompanyDetails>
<CCode>APPLE</CCode>
<CName>APPLE Limited</CName>
<Payslip>
<StaffNumber>12345</StaffNumber>
<BankDetails>
<BankAccountNo>121212</BankAccountNo>
</BankDetails>
<PayDetails>
<PayType>NORMAL</PayType>
<AmountGross>9999</AmountGross>
<ComponentDetails ID="1">
<ComponentType>SALARY</ComponentType>
<Amount>1999</Amount>
<YTDAmount>10616</YTDAmount>
</ComponentDetails>
<ComponentDetails ID="3">
<ComponentType>TAXABLE</ComponentType>
<Amount>505</Amount>
<YTDAmount>7703</YTDAmount>
</ComponentDetails>
</PayDetails>
</Payslip>
<Payslip>
<StaffNumber>45555</StaffNumber>
<BankDetails>
<BankAccountNo>131313</BankAccountNo>
</BankDetails>
<PayDetails>
<PayType>NORMAL</PayType>
<AmountGross>9999</AmountGross>
<ComponentDetails ID="1">
<ComponentType>SALARY</ComponentType>
<Amount>1999</Amount>
<YTDAmount>10616</YTDAmount>
</ComponentDetails>
<ComponentDetails ID="2">
<ComponentType>GROSS</ComponentType>
<Amount>7305</Amount>
<YTDAmount>76703</YTDAmount>
</ComponentDetails>
<ComponentDetails ID="3">
<ComponentType>TAXABLE</ComponentType>
<Amount>305</Amount>
<YTDAmount>6703</YTDAmount>
</ComponentDetails>
</PayDetails>
</Payslip>
</CompanyDetails>
</PayLocation>
</root>