Tất cả các giải pháp mà tôi đã gặp phải liên quan đến việc hợp nhất các tài liệu XML không thực hiện được những gì tôi mong muốn. Hãy để tôi giải thích:Việc hợp nhất các tài liệu xml
XML Tài liệu 1:
<?xml version="1.0" encoding="utf-8" ?>
<a>
<b title="Original Section">
<b title="Original Child Section"></b>
<b title="Original Child Section 2"></b>
</b>
</a>
XML Document 2:
<?xml version="1.0" encoding="utf-8" ?>
<a>
<b title="New Section">
<b title="New Child Section"></b>
</b>
<b title="Original Section">
<b title="Original Child Section">
<b title="New Child For Old Section"></b>
</b>
</b>
</a>
Into một doc thức như thế này:
<?xml version="1.0" encoding="utf-8" ?>
<a>
<b title="Original Section">
<b title="Original Child Section">
<b title="New Child For Old Section"></b>
</b>
<b title="Original Child Section 2"></b>
</b>
<b title="New Section">
<b title="New Child Section"></b>
</b>
</a>
Các tài liệu cũng tương tự như trong nội dung , nhưng có thể có số lượng nút con tùy ý. Tôi cũng muốn loại bỏ các bản sao. Tôi xem xét các bản sao là các phần tử có cùng thuộc tính (dựa trên tên thuộc tính và giá trị). Có ai nhìn thấy một ví dụ làm việc của việc thực hiện này? Tôi có thể hình dung làm thế nào tôi sẽ viết nó bằng cách sử dụng một số vòng và một chút đệ quy, nhưng với tôi, mà chỉ có vẻ không phải là cách tốt nhất để hoàn thành những gì tôi muốn :)
Chúc mừng và cảm ơn trước!
* EDIT *
Kể từ sự đồng thuận là các vòng lặp và đệ quy là phải, những gì sẽ là cách thanh lịch và hiệu quả nhất để thực hiện điều này? Tôi cho rằng một câu hỏi cơ bản khác cho vấn đề này là cách tốt nhất để so sánh các nút khi bạn lặp lại là gì?
Tôi đã triển khai một cái gì đó như thế này cho khách hàng. Về cơ bản nó hoạt động theo cách bạn sẽ thực hiện nó: Sử dụng các vòng lặp và đệ quy. –
+1 cho ví dụ đẹp –
Tôi đồng ý với @DanielHilgarth. Lặp lại và đệ quy về cơ bản là cách đơn giản nhất để thực hiện việc này. – Kian