Добавление узлов в XML с помощью Groovy XmlParser - PullRequest
0 голосов
/ 09 апреля 2019

Мне нужно удалить / добавить / обновить узлы для проанализированного поддерева XML внутри этого тега ns2: manager_id, содержащегося в этом фрагменте XML. Я использую Groovy XmlParser () в Groovy-скрипте SAP HCI (Cloud Platform Integration)

ns2:manager_ids>
  <ns2:manager_id>
    <ns2:manager_id>935553</ns2:manager_id>
    <ns2:type>Timesheet Approver</ns2:type>
  </ns2:manager_id>
</ns2:manager_ids>

Я запутался в синтаксисе Node (), чтобы добавить этот узел в тег XML внутри.

В каждом примере я хочу добавить в цикл различные значения и.

Ниже это моя полезная нагрузка ввода

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <ns3:E2G_importEmployees xmlns:ns3="http://services.workforcesoftware.com/xsd">
            <ns3:payload>
                <ns2:data xmlns:ns2="http://ws.apache.org/axis2/xsd">
                    <ns2:person>
                        <ns2:birth_date>1978-10-07</ns2:birth_date>
                        <ns2:email_addresses>
                            <ns2:email_address>
                                <ns2:email_address>fooo@mail.com</ns2:email_address>
                                <ns2:type>Business</ns2:type>
                            </ns2:email_address>
                        </ns2:email_addresses>
                        <ns2:employee_data>
                            <ns2:assignment>
                                <ns2:assignment_match_id>930323</ns2:assignment_match_id>
                                <ns2:eff_dated_info>
                                    <ns2:data>
                                        <ns2:adjusted_begin_date>2004-10-06</ns2:adjusted_begin_date>
                                        <ns2:assignment_description>GTE PERSONAL</ns2:assignment_description>
                                        <ns2:badge_id>930323</ns2:badge_id>
                                        <ns2:company_code>2001</ns2:company_code>
                                        <ns2:cost_center>CADM140TS</ns2:cost_center>
                                        <ns2:department_code>NA41</ns2:department_code>
                                        <ns2:district_code>1101D100</ns2:district_code>
                                        <ns2:division_code>NA40</ns2:division_code>
                                        <ns2:effective_date>2019-01-28</ns2:effective_date>
                                        <ns2:employment_type>ET</ns2:employment_type>
                                        <ns2:external_payroll_id>930323</ns2:external_payroll_id>
                                        <ns2:fulltime_equivalency_percentage>100.0</ns2:fulltime_equivalency_percentage>
                                        <ns2:fulltime_parttime_flag>true</ns2:fulltime_parttime_flag>
                                        <ns2:generic_fields>
                                            <ns2:generic_field1>
                                                <ns2:fieldName>DIAS_ADICIONALES</ns2:fieldName>
                                                <ns2:fieldValue>Grupo_2</ns2:fieldValue>
                                            </ns2:generic_field1>
                                            <ns2:generic_field2>
                                                <ns2:fieldName>ROL_TAM</ns2:fieldName>
                                                <ns2:fieldValue>SP_ADMINISTRATOR</ns2:fieldValue>
                                            </ns2:generic_field2>
                                            <ns2:generic_field3>
                                                <ns2:fieldName>CUSTOM_MANAGER</ns2:fieldName>
                                                <ns2:fieldValue/>
                                            </ns2:generic_field3>
                                        </ns2:generic_fields>
                                        <ns2:hr_status>A</ns2:hr_status>
                                        <ns2:is_earliest_effective_dated>false</ns2:is_earliest_effective_dated>
                                        <ns2:is_primary>false</ns2:is_primary>
                                        <ns2:is_terminated>false</ns2:is_terminated>
                                        <ns2:job_code>40-GER-392</ns2:job_code>
                                        <ns2:job_level>1512</ns2:job_level>
                                        <ns2:job_title>GTE PERSONAL</ns2:job_title>
                                        <ns2:latest_assignment_begin_date>2004-10-06</ns2:latest_assignment_begin_date>
                                        <ns2:location_code>1101D100</ns2:location_code>
                                        <ns2:manager_ids>
                                            <ns2:manager_id>
                                                <ns2:manager_id>935553</ns2:manager_id>
                                                <ns2:type>Timesheet Approver</ns2:type>
                                            </ns2:manager_id>
                                        </ns2:manager_ids>
                                        <ns2:original_assignment_begin_date>2004-10-06</ns2:original_assignment_begin_date>
                                        <ns2:pay_currency>MXN</ns2:pay_currency>
                                        <ns2:pay_grade>MEX/DT/10/ADM2001/1</ns2:pay_grade>
                                        <ns2:pay_rates>
                                            <ns2:pay_rate>
                                                <ns2:frequency>SMT</ns2:frequency>
                                                <ns2:pay_rate>48800.0</ns2:pay_rate>
                                                <ns2:type>AMOUNT</ns2:type>
                                            </ns2:pay_rate>
                                        </ns2:pay_rates>
                                        <ns2:payroll_system_id>QC</ns2:payroll_system_id>
                                        <ns2:region_code>1101D100</ns2:region_code>
                                        <ns2:schedule_template_match_id>C001-C</ns2:schedule_template_match_id>
                                        <ns2:seniority_date>2004-10-06</ns2:seniority_date>
                                        <ns2:standard_daily_hours>9.6000000000</ns2:standard_daily_hours>
                                        <ns2:standard_weekly_hours>48.0</ns2:standard_weekly_hours>
                                        <ns2:time_zone>America/Mexico_City</ns2:time_zone>
                                    </ns2:data>
                                    <ns2:data>
                                        <ns2:adjusted_begin_date>2004-10-06</ns2:adjusted_begin_date>
                                        <ns2:assignment_description>GTE PERSONAL</ns2:assignment_description>
                                        <ns2:badge_id>930323</ns2:badge_id>
                                        <ns2:company_code>2001</ns2:company_code>
                                        <ns2:cost_center>CADM140TS</ns2:cost_center>
                                        <ns2:department_code>NA41</ns2:department_code>
                                        <ns2:district_code>1101D100</ns2:district_code>
                                        <ns2:division_code>NA40</ns2:division_code>
                                        <ns2:effective_date>2019-02-04</ns2:effective_date>
                                        <ns2:employment_type>ET</ns2:employment_type>
                                        <ns2:external_payroll_id>930323</ns2:external_payroll_id>
                                        <ns2:fulltime_equivalency_percentage>100.0</ns2:fulltime_equivalency_percentage>
                                        <ns2:fulltime_parttime_flag>true</ns2:fulltime_parttime_flag>
                                        <ns2:generic_fields>
                                            <ns2:generic_field1>
                                                <ns2:fieldName>DIAS_ADICIONALES</ns2:fieldName>
                                                <ns2:fieldValue>Grupo_2</ns2:fieldValue>
                                            </ns2:generic_field1>
                                            <ns2:generic_field2>
                                                <ns2:fieldName>ROL_TAM</ns2:fieldName>
                                                <ns2:fieldValue>SP_ADMINISTRATOR</ns2:fieldValue>
                                            </ns2:generic_field2>
                                            <ns2:generic_field3>
                                                <ns2:fieldName>CUSTOM_MANAGER</ns2:fieldName>
                                                <ns2:fieldValue/>
                                            </ns2:generic_field3>
                                        </ns2:generic_fields>m
                                        <ns2:hr_status>A</ns2:hr_status>
                                        <ns2:is_earliest_effective_dated>false</ns2:is_earliest_effective_dated>
                                        <ns2:is_primary>false</ns2:is_primary>
                                        <ns2:is_terminated>false</ns2:is_terminated>
                                        <ns2:job_code>40-GER-392</ns2:job_code>
                                        <ns2:job_level>1512</ns2:job_level>
                                        <ns2:job_title>GTE PERSONAL</ns2:job_title>
                                        <ns2:latest_assignment_begin_date>2004-10-06</ns2:latest_assignment_begin_date>
                                        <ns2:location_code>1101D100</ns2:location_code>
                                        <ns2:manager_ids>
                                            <ns2:manager_id>
                                                <ns2:manager_id>935553</ns2:manager_id>
                                                <ns2:type>Timesheet Approver</ns2:type>
                                            </ns2:manager_id>
                                        </ns2:manager_ids>
                                        <ns2:original_assignment_begin_date>2004-10-06</ns2:original_assignment_begin_date>
                                        <ns2:pay_currency>MXN</ns2:pay_currency>
                                        <ns2:pay_grade>MEX/DT/10/ADM2001/1</ns2:pay_grade>
                                        <ns2:pay_rates>
                                            <ns2:pay_rate>
                                                <ns2:frequency>SMT</ns2:frequency>
                                                <ns2:pay_rate>48800.0</ns2:pay_rate>
                                                <ns2:type>AMOUNT</ns2:type>
                                            </ns2:pay_rate>
                                        </ns2:pay_rates>
                                        <ns2:payroll_system_id>QC</ns2:payroll_system_id>
                                        <ns2:region_code>1101D100</ns2:region_code>
                                        <ns2:schedule_template_match_id>C001-C</ns2:schedule_template_match_id>
                                        <ns2:seniority_date>2004-10-06</ns2:seniority_date>
                                        <ns2:standard_daily_hours>9.6000000000</ns2:standard_daily_hours>
                                        <ns2:standard_weekly_hours>48.0</ns2:standard_weekly_hours>
                                        <ns2:time_zone>America/Mexico_City</ns2:time_zone>
                                    </ns2:data>
                                </ns2:eff_dated_info>
                            </ns2:assignment>
                            <ns2:eff_dated_info>
                                <ns2:data>
                                    <ns2:adjusted_hire_date>2004-10-06</ns2:adjusted_hire_date>
                                    <ns2:effective_date>2019-01-28</ns2:effective_date>
                                    <ns2:fifty_employees_in_75_mile_radius_flag>UNKNOWN</ns2:fifty_employees_in_75_mile_radius_flag>
                                    <ns2:gender>M</ns2:gender>
                                    <ns2:hr_status>A</ns2:hr_status>
                                    <ns2:is_earliest_effective_dated>false</ns2:is_earliest_effective_dated>
                                    <ns2:latest_hire_date>2019-01-28</ns2:latest_hire_date>
                                    <ns2:original_hire_date>2004-10-06</ns2:original_hire_date>
                                    <ns2:standard_weekly_hours>48.0</ns2:standard_weekly_hours>
                                </ns2:data>
                                <ns2:data>
                                    <ns2:adjusted_hire_date>2004-10-06</ns2:adjusted_hire_date>
                                    <ns2:effective_date>2019-02-04</ns2:effective_date>
                                    <ns2:fifty_employees_in_75_mile_radius_flag>UNKNOWN</ns2:fifty_employees_in_75_mile_radius_flag>
                                    <ns2:gender>M</ns2:gender>
                                    <ns2:hr_status>A</ns2:hr_status>
                                    <ns2:is_earliest_effective_dated>false</ns2:is_earliest_effective_dated>
                                    <ns2:latest_hire_date>2019-01-28</ns2:latest_hire_date>
                                    <ns2:original_hire_date>2004-10-06</ns2:original_hire_date>
                                    <ns2:standard_weekly_hours>48.0</ns2:standard_weekly_hours>
                                </ns2:data>
                            </ns2:eff_dated_info>
                        </ns2:employee_data>
                        <ns2:external_hr_id>930323</ns2:external_hr_id>
                        <ns2:first_name>LUIS</ns2:first_name>
                        <ns2:home_address/>
                        <ns2:last_modification_time>2019-04-05T14:59:54.000Z</ns2:last_modification_time>
                        <ns2:last_name>MEDINA</ns2:last_name>
                        <ns2:phone_numbers>
                            <ns2:phone_number>
                                <ns2:phone_number>**********</ns2:phone_number>
                                <ns2:type/>
                            </ns2:phone_number>
                        </ns2:phone_numbers>
                        <ns2:user_data>
                            <ns2:authentication_match_id>930323</ns2:authentication_match_id>
                            <ns2:empcenter_login_id>930323</ns2:empcenter_login_id>
                            <ns2:language>es</ns2:language>
                            <ns2:manager_types>
                                <ns2:manager_type>Timesheet Approver</ns2:manager_type>
                            </ns2:manager_types>
                        </ns2:user_data>
                    </ns2:person>
                </ns2:data>
            </ns3:payload>
        </ns3:E2G_importEmployees>
    </soap:Body>
</soap:Envelope>
...