Tôi có một tài liệu XML hiện có với một số nút tùy chọn và tôi muốn chèn một nút mới, nhưng ở một vị trí nhất định. tài liệuChèn nút XML tại vị trí cụ thể của tài liệu hiện có
trông một cái gì đó như thế này:
<root>
<a>...</a>
...
<r>...</r>
<t>...</t>
...
<z>...</z>
</root>
Nút mới (<s>...</s>
) nên được chèn vào giữa nút <r>
và <t>
, kết quả là:
<root>
<a>...</a>
...
<r>...</r>
<s>new node</s>
<t>...</t>
...
<z>...</z>
</root>
Vấn đề là, rằng hiện tại các nút là tùy chọn. Vì vậy, tôi không thể sử dụng XPath để tìm nút <r>
và chèn nút mới sau nó.
Tôi muốn tránh "phương pháp bạo lực": Tìm kiếm từ <r>
tối đa <a>
để tìm nút tồn tại.
Tôi cũng muốn giữ nguyên thứ tự, vì tài liệu XML phải tuân theo lược đồ XML.
XSLT cũng như các thư viện XML thông thường có thể được sử dụng, nhưng vì tôi chỉ sử dụng Saxon-B, xử lý XSLT nhận biết lược đồ không phải là một tùy chọn.
Có ai có ý tưởng về cách chèn nút như vậy không?
thx, MyKey_
Điều này không hoạt động khi không có nút 'r' (theo câu hỏi gốc: Tất cả các nút là tùy chọn). Mẫu sẽ trông như thế nào khi bạn không thể dựa vào bất kỳ nút nào tồn tại? –
Rất tiếc, bạn đã đúng. Tôi đã đọc sai bài đăng gốc. Bây giờ tôi đã thay thế hoàn toàn câu trả lời. Cảm ơn. –
Điều đó thực sự tuyệt vời. Tinh chỉnh nhẹ: trong việc kiếm được $ elments-after, sử dụng một biến thay vì 's', vì vậy bạn có thể tự động xử lý chèn sau bất kỳ con nào của. –
13ren