2012-02-23 16 views
5

Przechowuję dwa dokumenty XML, a mianowicie szpitala i biura, w BaseX.Wstawianie danych w pliku XML przy użyciu Basex

Poniżej znajduje się biuro xml:

<Staff> 
    <Employee Name="Brian"> 
     <Personal> 
      <SSN> 666-66-6666 </SSN> 
     </Personal> 
     <StaffInfo> 
      <Position> Doctor </Position> 
      <AccountableTo> David </AccountableTo> 
     </StaffInfo> 
    </Employee> 
    <Employee Name="David"> 
     <Personal> 
      <SSN> 555-55-5555 </SSN> 
     </Personal> 
     <StaffInfo> 
      <Position> Doctor </Position> 
      <AccountableTo /> 
     </StaffInfo> 
    </Employee> 
</Staff> 

W tym XML Chcę dodać jeden lub więcej pracowników. Jak mogę dodawać elementy za pomocą BaseX?

Odpowiedz

9

XQuery ma funkcję aktualizacji, official W3C recommendation, zwaną aktualizacją XQuery w celu zmiany struktury dokumentu.

Można użyć aktualizacji tak:

Biorąc utworzeniu pracowników bazy, z commmand:

CREATE DB office /path/to/office.xml

Teraz można skorzystać z możliwości XQuery Update i uruchomić następujące zapytanie:

let $up := <Employee Name="Joe"> 
    <Personal> 
     <SSN>666-66-1234</SSN> 
    </Personal> 
    <StaffInfo> 
     <Position>Doctor</Position> 
     <AccountableTo>Jeff</AccountableTo> 
    </StaffInfo> 
    </Employee> 

    return 
insert node $up as last into doc('office')/Staff 

Ta reklama będzie węzeł odwołuje $up na ostatnim miejscu w swojej Bazy se staff

The BaseX Documentation Wiki zawiera więcej informacji na temat aktualizacji:

Jest dobry poradnik, XQuery Update for the impatient dostarczone przez xmlmind.com.

Rzeczywiście można użyć interfejsów API do wydania tych zapytań, na początek sugerowałbym trzymać się GUI, aby można było zobaczyć wyniki bezpośrednio.

Mam nadzieję, że to pomogło, poproś o więcej informacji; tutaj lub na oficjalnej stronie BaseX Mailing List.

+0

Dzięki za informacje pozwól mi spróbować i zaimplementować za pomocą informacji dostarczonych przez Michaela, .. –

Powiązane problemy