【发布时间】:2021-06-14 21:09:15
【问题描述】:
我已尝试使用以下代码从以下 XML 中删除 scheme-details1,但无法将其删除。
XmlActionResult xmlActionResult = new XmlActionResult(schememaster);
foreach (XElement element in xmlActionResult._document.Elements())
{
xmlActionResult._document.Elements("scheme-details1").Remove();
}
其中xmlActionResult._document 是XDocument。
以下是我的 XML 响应:-
<scheme-master>
<general-information>
<schemecode>XXXXX</schemecode>
<year>2020</year>
<month>04</month>
<requestid>0008052020</requestid>
</general-information>
<scheme-details1>
<scheme-details>
<location>
<district_code>503</district_code>
<district_name>Chittoor</district_name>
<state_code>28</state_code>
<state_name>Andhra pradesh</state_name>
</location>
<beneficiary-details>
<no_of_beneficiaries_normative_central_and_state_share>10000</no_of_beneficiaries_normative_central_and_state_share>
<no_of_additional_beneficiaries_supported_by_state>0</no_of_additional_beneficiaries_supported_by_state>
<total_no_of_beneficiaries>10000</total_no_of_beneficiaries>
<no_of_beneficiaries_record_digitized>10000</no_of_beneficiaries_record_digitized>
<no_of_authenticated_seeded_beneficiaries>10000</no_of_authenticated_seeded_beneficiaries>
<no_of_beneficiaries_whom_mobile_no_captured>10000</no_of_beneficiaries_whom_mobile_no_captured>
</beneficiary-details>
<fundtransfer-details>
<central_share_fund_transferred_cash>10000</central_share_fund_transferred_cash>
<normative_state_share_fund_transferred_cash>0</normative_state_share_fund_transferred_cash>
<additional_state_share_fund_transferred_cash>0</additional_state_share_fund_transferred_cash>
<state_share_fund_transferred_to_additional_beneficiaries_cash>0</state_share_fund_transferred_to_additional_beneficiaries_cash>
<total_fund_transferred_cash>10000</total_fund_transferred_cash>
<central_share_expenditure_incurred_inkind>0</central_share_expenditure_incurred_inkind>
<normative_state_share_expenditure_incurred_inkind>0</normative_state_share_expenditure_incurred_inkind>
<additional_state_share_expenditure_incurred_inkind>0</additional_state_share_expenditure_incurred_inkind>
<state_share_expenditure_incurred_to_additional_beneficiaries_inkind>0</state_share_expenditure_incurred_to_additional_beneficiaries_inkind>
<total_expenditure_incurred_inkind>0</total_expenditure_incurred_inkind>
</fundtransfer-details>
<transaction-details>
<total_no_transactions_electronic_modes_cash>10000</total_no_transactions_electronic_modes_cash>
<payment_electronic_modes_cash>10000</payment_electronic_modes_cash>
<total_no_transactions_other_modes_cash>0</total_no_transactions_other_modes_cash>
<payment_other_modes_cash>0</payment_other_modes_cash>
<quantity_transferred_inkind>0</quantity_transferred_inkind>
<no_of_authenticated_transactions_inkind>0</no_of_authenticated_transactions_inkind>
<dbt_expenditure_incurred_inkind>0</dbt_expenditure_incurred_inkind>
</transaction-details>
</scheme-details>
<scheme-details>
<location>
<district_code>504</district_code>
<district_name>Cuddapah (YSR Kadapa)</district_name>
<state_code>28</state_code>
<state_name>Andhra pradesh</state_name>
</location>
<beneficiary-details>
<no_of_beneficiaries_normative_central_and_state_share>10000</no_of_beneficiaries_normative_central_and_state_share>
<no_of_additional_beneficiaries_supported_by_state>0</no_of_additional_beneficiaries_supported_by_state>
<total_no_of_beneficiaries>10000</total_no_of_beneficiaries>
<no_of_beneficiaries_record_digitized>10000</no_of_beneficiaries_record_digitized>
<no_of_authenticated_seeded_beneficiaries>10000</no_of_authenticated_seeded_beneficiaries>
<no_of_beneficiaries_whom_mobile_no_captured>10000</no_of_beneficiaries_whom_mobile_no_captured>
</beneficiary-details>
<fundtransfer-details>
<central_share_fund_transferred_cash>10000</central_share_fund_transferred_cash>
<normative_state_share_fund_transferred_cash>0</normative_state_share_fund_transferred_cash>
<additional_state_share_fund_transferred_cash>0</additional_state_share_fund_transferred_cash>
<state_share_fund_transferred_to_additional_beneficiaries_cash>0</state_share_fund_transferred_to_additional_beneficiaries_cash>
<total_fund_transferred_cash>10000</total_fund_transferred_cash>
<central_share_expenditure_incurred_inkind>0</central_share_expenditure_incurred_inkind>
<normative_state_share_expenditure_incurred_inkind>0</normative_state_share_expenditure_incurred_inkind>
<additional_state_share_expenditure_incurred_inkind>0</additional_state_share_expenditure_incurred_inkind>
<state_share_expenditure_incurred_to_additional_beneficiaries_inkind>0</state_share_expenditure_incurred_to_additional_beneficiaries_inkind>
<total_expenditure_incurred_inkind>0</total_expenditure_incurred_inkind>
</fundtransfer-details>
<transaction-details>
<total_no_transactions_electronic_modes_cash>10000</total_no_transactions_electronic_modes_cash>
<payment_electronic_modes_cash>10000</payment_electronic_modes_cash>
<total_no_transactions_other_modes_cash>0</total_no_transactions_other_modes_cash>
<payment_other_modes_cash>0</payment_other_modes_cash>
<quantity_transferred_inkind>0</quantity_transferred_inkind>
<no_of_authenticated_transactions_inkind>0</no_of_authenticated_transactions_inkind>
<dbt_expenditure_incurred_inkind>0</dbt_expenditure_incurred_inkind>
</transaction-details>
</scheme-details>
<scheme-details>
<location>
<district_code>503</district_code>
<district_name>Chittoor</district_name>
<state_code>28</state_code>
<state_name>Andhra pradesh</state_name>
</location>
<beneficiary-details>
<no_of_beneficiaries_normative_central_and_state_share>10000</no_of_beneficiaries_normative_central_and_state_share>
<no_of_additional_beneficiaries_supported_by_state>0</no_of_additional_beneficiaries_supported_by_state>
<total_no_of_beneficiaries>10000</total_no_of_beneficiaries>
<no_of_beneficiaries_record_digitized>10000</no_of_beneficiaries_record_digitized>
<no_of_authenticated_seeded_beneficiaries>10000</no_of_authenticated_seeded_beneficiaries>
<no_of_beneficiaries_whom_mobile_no_captured>10000</no_of_beneficiaries_whom_mobile_no_captured>
</beneficiary-details>
<fundtransfer-details>
<central_share_fund_transferred_cash>10000</central_share_fund_transferred_cash>
<normative_state_share_fund_transferred_cash>0</normative_state_share_fund_transferred_cash>
<additional_state_share_fund_transferred_cash>0</additional_state_share_fund_transferred_cash>
<state_share_fund_transferred_to_additional_beneficiaries_cash>0</state_share_fund_transferred_to_additional_beneficiaries_cash>
<total_fund_transferred_cash>10000</total_fund_transferred_cash>
<central_share_expenditure_incurred_inkind>0</central_share_expenditure_incurred_inkind>
<normative_state_share_expenditure_incurred_inkind>0</normative_state_share_expenditure_incurred_inkind>
<additional_state_share_expenditure_incurred_inkind>0</additional_state_share_expenditure_incurred_inkind>
<state_share_expenditure_incurred_to_additional_beneficiaries_inkind>0</state_share_expenditure_incurred_to_additional_beneficiaries_inkind>
<total_expenditure_incurred_inkind>0</total_expenditure_incurred_inkind>
</fundtransfer-details>
<transaction-details>
<total_no_transactions_electronic_modes_cash>10000</total_no_transactions_electronic_modes_cash>
<payment_electronic_modes_cash>10000</payment_electronic_modes_cash>
<total_no_transactions_other_modes_cash>0</total_no_transactions_other_modes_cash>
<payment_other_modes_cash>0</payment_other_modes_cash>
<quantity_transferred_inkind>0</quantity_transferred_inkind>
<no_of_authenticated_transactions_inkind>0</no_of_authenticated_transactions_inkind>
<dbt_expenditure_incurred_inkind>0</dbt_expenditure_incurred_inkind>
</transaction-details>
</scheme-details>
<scheme-details>
<location>
<district_code>504</district_code>
<district_name>Cuddapah (YSR Kadapa)</district_name>
<state_code>28</state_code>
<state_name>Andhra pradesh</state_name>
</location>
<beneficiary-details>
<no_of_beneficiaries_normative_central_and_state_share>10000</no_of_beneficiaries_normative_central_and_state_share>
<no_of_additional_beneficiaries_supported_by_state>0</no_of_additional_beneficiaries_supported_by_state>
<total_no_of_beneficiaries>10000</total_no_of_beneficiaries>
<no_of_beneficiaries_record_digitized>10000</no_of_beneficiaries_record_digitized>
<no_of_authenticated_seeded_beneficiaries>10000</no_of_authenticated_seeded_beneficiaries>
<no_of_beneficiaries_whom_mobile_no_captured>10000</no_of_beneficiaries_whom_mobile_no_captured>
</beneficiary-details>
<fundtransfer-details>
<central_share_fund_transferred_cash>10000</central_share_fund_transferred_cash>
<normative_state_share_fund_transferred_cash>0</normative_state_share_fund_transferred_cash>
<additional_state_share_fund_transferred_cash>0</additional_state_share_fund_transferred_cash>
<state_share_fund_transferred_to_additional_beneficiaries_cash>0</state_share_fund_transferred_to_additional_beneficiaries_cash>
<total_fund_transferred_cash>10000</total_fund_transferred_cash>
<central_share_expenditure_incurred_inkind>0</central_share_expenditure_incurred_inkind>
<normative_state_share_expenditure_incurred_inkind>0</normative_state_share_expenditure_incurred_inkind>
<additional_state_share_expenditure_incurred_inkind>0</additional_state_share_expenditure_incurred_inkind>
<state_share_expenditure_incurred_to_additional_beneficiaries_inkind>0</state_share_expenditure_incurred_to_additional_beneficiaries_inkind>
<total_expenditure_incurred_inkind>0</total_expenditure_incurred_inkind>
</fundtransfer-details>
<transaction-details>
<total_no_transactions_electronic_modes_cash>10000</total_no_transactions_electronic_modes_cash>
<payment_electronic_modes_cash>10000</payment_electronic_modes_cash>
<total_no_transactions_other_modes_cash>0</total_no_transactions_other_modes_cash>
<payment_other_modes_cash>0</payment_other_modes_cash>
<quantity_transferred_inkind>0</quantity_transferred_inkind>
<no_of_authenticated_transactions_inkind>0</no_of_authenticated_transactions_inkind>
<dbt_expenditure_incurred_inkind>0</dbt_expenditure_incurred_inkind>
</transaction-details>
</scheme-details>
</scheme-details1>
</scheme-master>
【问题讨论】:
-
请更新您的问题,并添加所需的输出 XML。
-
在循环中你需要做
element.Elements("scheme-details1").Remove();。或者消除循环并执行xmlActionResult._document.Root.Elements("scheme-details1").Remove();。见dotnetfiddle.net/0vZMoK -
当你有一个列表时,你必须从末尾开始并朝着开头移动: List
elements = xmlActionResult._document.Elements().ToList(); for (int i = elements.Count - 1; i >= 0; i--) { elements[i].Remove; } -
在您的问题中,您定义了一个变量
xmlActionResult1,但随后尝试从xmlActionResult的文档中删除节点。假设这是问题中的错字,我编辑了变量名称以保持一致。如果您的代码中确实有两个不同的XmlActionResult对象,这也可以解释您的问题——您可能正在从错误的对象中删除节点。
标签: c# xml linq-to-xml