2012-10-05 4 views
6

Używam Pythona do utworzenia elementu w dokumencie XML, a następnie wstaw go jako PIERWSZE DZIECKO dokumentu. Tak, jakbym tworzenia elment nazwie newChild chciałbym xml jak to ...Wstaw element xml jako pierwsze dziecko przy użyciu ElementTree w pytonie

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

stać ...

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

wiem, że kolejność elementów w dowolnej xml powinnaś Nieważne, ale piszę xml doc dla starożytnego systemu, który psuje się, jeśli elementy xml nie są w oczekiwanej kolejności, więc nie mam wyboru w tym względzie.

+0

Co próbowałeś do tej pory? Jaki jest twój konkretny problem? Co to jest komunikat o błędzie? A może oczekujesz od nas napisania kodu? – Achim

+0

Definicja mojego problemu jest bardzo zwięzła. Przeczytałem dokument (i przyznaję, że brakowało mi właściwej odpowiedzi po raz pierwszy) - nic jeszcze nie napisałem, ponieważ nie znalazłem niczego w dokumentach, które pasowałyby do moich potrzeb. http://stackoverflow.com/questions/4739834/rails-3-routing-to-customer-areas Kiedy zadałeś to pytanie, czy spodziewałeś się, że ktoś napisze twój kod? Jaki był twój komunikat o błędzie? – Dave

Odpowiedz

9

Metoda xml.etree.ElementTree.Element.insert umożliwia dodanie nowego podelementu do elementu wstawionego w określonej pozycji.

W twoim przypadku element.insert(0, new_sub_element) powinien załatwić sprawę.

+0

Dziękuję - to wygląda dokładnie tak, jak tego szukałem. Jestem przyzwyczajony do perlowania parserów, które używają kopiowania/wklejania i nie myślę o szukaniu metody wstawiania. Zrobię to, gdy wrócę do pracy w poniedziałek i wznowię/zaakceptuję. – Dave

+0

W środowisku wykonawczym Python 2.7 wstawienie zastępuje istniejący komponent w tej pozycji. W tym przykładzie element childA zostanie zastąpiony przez nowyChild – ajeans

Powiązane problemy