Я пытаюсь объединить два xml-файла с обновлениями на основе условности. В первом файле вы заметите, что есть 3 последовательности SECTION_SUMMARY. Третья последовательность имеет LockAuthority Attri bute от «1».Объединить 2 xml-файла с xslt и условиями
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, который появляется в обоих файлах имеет атрибут LockAuthority со значением «2». Если значение больше или равно значению в файле 1, то значение происходит из значения File2 else из File1. Я также хочу, чтобы любые точки данных с LockAuthority не были объединены в File1. Если LockAuthority отсутствует, данные из файла 2 будут преобладать.
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