2012-10-05 23 views
6

Tôi đang sử dụng python để tạo một phần tử trong tài liệu xml và sau đó chèn nó làm TRẺ ĐẦU TIÊN của tài liệu. Vì vậy, nếu tôi đã tạo ra một elment tên newChild tôi muốn xml như thế này ...Chèn phần tử xml làm con đầu tiên sử dụng ElementTree trong python

<root> 
    <childA></childA> 
    <childB></childB> 
    <childC></childC> 
</root> 

để trở thành ...

<root> 
    <newChild></newChild> 
    <childA></childA> 
    <childB></childB> 
    <childC></childC> 
</root> 

Tôi biết rằng thứ tự của các yếu tố trong shouldn xml tùy ý' t vấn đề, nhưng tôi viết xml doc cho một hệ thống cổ xưa mà phá vỡ nếu các yếu tố xml không theo thứ tự mong đợi, vì vậy tôi không có một sự lựa chọn trong vấn đề đó.

+0

Bạn đã thử những gì cho đến nay? Vấn đề cụ thể của bạn là gì? Thông báo lỗi là gì? Hay bạn mong đợi chúng tôi viết mã của bạn? – Achim

+0

Định nghĩa về vấn đề của tôi rất ngắn gọn. Tôi đã đọc tài liệu (và thừa nhận đã bỏ lỡ câu trả lời đúng trong lần đầu tiên) - Tôi chưa viết mã gì cả vì tôi đã không tìm thấy bất cứ thứ gì trong tài liệu phù hợp với nhu cầu của tôi. http://stackoverflow.com/questions/4739834/rails-3-routing-to-customer-areas Khi bạn đặt câu hỏi đó, bạn có mong đợi ai đó viết mã của bạn không? Thông báo lỗi của bạn là gì? – Dave

Trả lời

9

Phương pháp xml.etree.ElementTree.Element.insert cho phép bạn thêm phần tử con mới vào phần tử được chèn tại vị trí cụ thể.

Trong trường hợp của bạn element.insert(0, new_sub_element) nên thực hiện thủ thuật.

+0

Cảm ơn bạn - trông giống như những gì tôi đang tìm kiếm. Tôi đang sử dụng để phân tích cú pháp perl sử dụng sao chép/dán và không nghĩ để tìm một phương pháp chèn. Tôi sẽ cung cấp cho nó một shot khi tôi trở lại làm việc vào thứ hai và upvote/chấp nhận. – Dave

+0

Trên thời gian chạy Python 2.7 của tôi, chèn thay thế thành phần hiện tại tại vị trí đó. Trong ví dụ này, childA sẽ được thay thế bằng newChild – ajeans

Các vấn đề liên quan