删除XML中某列包含重复项的行

删除XML中某列包含重复项的行,xml,duplicates,notepad++,Xml,Duplicates,Notepad++,我不经常使用XML,但我需要调整一些数据。 我在记事本++下面贴了一行。我需要删除LoanID重复的整行。这些文件包含大约200.000行,其中200个LoanID是重复的 因为整行不需要重复,但只有一个“列”,所以我不能使用TextFX插件。 例如,借用ID可能包含重复项。仅LoanID不允许包含重复项 第1行: <ns1:Loan>ns1:Identifiers:LoanID>876298<LoanID> <ns1:IsRegulatedLoan>

我不经常使用XML,但我需要调整一些数据。 我在记事本++下面贴了一行。我需要删除LoanID重复的整行。这些文件包含大约200.000行,其中200个LoanID是重复的

因为整行不需要重复,但只有一个“列”,所以我不能使用TextFX插件。 例如,借用ID可能包含重复项。仅LoanID不允许包含重复项

第1行:

<ns1:Loan>ns1:Identifiers:LoanID>876298<LoanID>  <ns1:IsRegulatedLoan>ND,6</ns1:IsRegulatedLoan><ns1:Originator>TestBank</ns1:Originator><ns1:ServicerID>Testbank NV</ns1:ServicerID><ns1:BorrowerID>26547</ns1:BorrowerID><ns1:PropertyID>364239</ns1:PropertyID>
ns1:标识符:LoanID>876298 ND,6测试银行测试银行NV26547364239
第2行:

ns1:Loan ns1:Identifiers>:LoanID>819305:LoanID>
ns1:IsRegulatedLoan>ND,6/:IsRegulatedLoanns1:Originator>TestBank/ns1:Originator>ns1:ServicerID>Testbank NV</ns1:ServicerID>ns1:BorrowerID>195797:BorrowerID>
ns1:Loan ns1:Identifiers>:LoanID>819305:LoanID>
ns1:IsRegulatedLoan>ND,6/:IsRegulatedLoanns1:Originator>TestBank/ns1:Originator>ns1:ServicerID>TestBank NVns1:BorrowerID>195797:BorrowerID>

在“行”级别操作XML不是一个好主意,因为行尾没有特殊意义,很容易更改

对于这种操作,大多数人都会使用XSLT。XSLT有一个学习过程,但如果您打算使用XML,那么它是工具箱的重要组成部分,因此非常值得掌握它。典型代码(在XSLT 2.0中)如下所示:

<xsl:for-each-group select="ns1:Loan" group-by="LoanId">
  <xsl:copy-of select="current-group()[1]"/>
</xsl:for-each-group>


如果给定一组重复项,则会删除除第一行以外的所有内容。

您拥有的XML无效,例如,第2行中缺少<