0
我正在尝试合并两个xml文件和基于条件的更新。在第一个文件中,您会注意到有3个SECTION_SUMMARY序列。第三序列的LockAuthority Attetete为“1”。用xslt和条件合并2个xml文件
File1.xml
<DOCUMENT>
<LOANS>
<LOAN SequenceNumber="1" xlink:label="LOAN1" LoanRoleType="SubjectLoan">
<DOCUMENT_SETS>
<DOCUMENT_SET>
<GFE>
<SECTION_SUMMARIES>
<SECTION_SUMMARY SequenceNumber="1">
<Amount>1975.00</Amount>
<Type>A</Type>
</SECTION_SUMMARY>
<SECTION_SUMMARY SequenceNumber="2">
<Amount>9751.44</Amount>
<Type>B</Type>
</SECTION_SUMMARY>
<SECTION_SUMMARY SequenceNumber="3" LockAuthority="1">
<Amount>3750.00</Amount>
<Type>A</Type>
</SECTION_SUMMARY>
</SECTION_SUMMARIES>
</GFE>
</DOCUMENT_SET>
</DOCUMENT_SETS>
<ESCROW>
<ESCROW_DETAIL>
<InsuranceIndicator>true</InsuranceIndicator>
<AllPropertyTaxesIndicator>true</AllPropertyTaxesIndicator>
<OtherDescription>HOA</OtherDescription>
</ESCROW_DETAIL>
</ESCROW>
</LOAN>
</LOANS>
</DOCUMENT>
在第二个文件中有序列3到5.出现在两个文件中的序列3具有值为“2”的LockAuthority属性。如果该值大于或等于文件1中的值,则值来自File1的File2 else值。我也想要任何没有在File1中合并的LockAuthority的数据点。如果没有LockAuthority,则来自File2的数据将占上风。
File2.xml
<DOCUMENT>
<LOANS>
<LOAN SequenceNumber="1" xlink:label="LOAN1" LoanRoleType="SubjectLoan">
<DOCUMENT_SETS>
<DOCUMENT_SET>
<GFE>
<SECTION_SUMMARIES>
<SECTION_SUMMARY SequenceNumber="3" LockAuthority="2">
<Amount>200.00</Amount>
<Type>Header</Type>
</SECTION_SUMMARY>
<SECTION_SUMMARY SequenceNumber="4">
<Amount>-3000.00</Amount>
<Type>Two</Type>
</SECTION_SUMMARY>
<SECTION_SUMMARY SequenceNumber="5">
<Amount>5392.25</Amount>
<Type>Three</Type>
</SECTION_SUMMARY>
</SECTION_SUMMARIES>
</GFE>
</DOCUMENT_SET>
</DOCUMENT_SETS>
</LOAN>
</LOANS>
</DOCUMENT>
生成的文件应该看起来像这样。
<DOCUMENT>
<LOANS>
<LOAN SequenceNumber="1" xlink:label="LOAN1" LoanRoleType="SubjectLoan">
<DOCUMENT_SETS>
<DOCUMENT_SET>
<GFE>
<SECTION_SUMMARIES>
<SECTION_SUMMARY SequenceNumber="1">
<Amount>1975.00</Amount>
<Type>A</Type>
</SECTION_SUMMARY>
<SECTION_SUMMARY SequenceNumber="2">
<Amount>9751.44</Amount>
<Type>B</Type>
</SECTION_SUMMARY>
<SECTION_SUMMARY SequenceNumber="3" LockAuthority="2">
<Amount>200.00</Amount>
<Type>Header</Type>
</SECTION_SUMMARY>
<SECTION_SUMMARY SequenceNumber="4">
<Amount>-3000.00</Amount>
<Type>Two</Type>
</SECTION_SUMMARY>
<SECTION_SUMMARY SequenceNumber="5">
<Amount>5392.25</Amount>
<Type>Three</Type>
</SECTION_SUMMARY>
</SECTION_SUMMARIES>
</GFE>
</DOCUMENT_SET>
</DOCUMENT_SETS>
<ESCROW>
<ESCROW_DETAIL>
<InsuranceIndicator>true</InsuranceIndicator>
<AllPropertyTaxesIndicator>true</AllPropertyTaxesIndicator>
<OtherDescription>HOA</OtherDescription>
</ESCROW_DETAIL>
</ESCROW>
</LOAN>
</LOANS>
</DOCUMENT>
任何和所有的帮助,非常感谢!
我将第5行的文件名更改为我的文件名并执行此操作。我只获取了File1中的数据。我错过了什么? – user2452998
应该工作。 (我用xsltproc测试过)XML文件和xslt在同一个目录下吗?你用你发布的xml文件做测试吗?也许在你的测试中涉及命名空间(因为xlink:label)? –
文件全部位于同一个目录中。将你的答案复制到新文件并保存到同一个目录。将新的xslt分配给File1并执行XSL转换。我正在使用XMLSpy。试过去除标签。我正在使用我发布的相同文件。还有什么建议? – user2452998