2012-02-23 11 views
5

Sto memorizzando due documenti XML, ovvero ospedale e ufficio, in BaseX.Inserimento di un dato in un XML utilizzando il Basex

Quello che segue è l'xml ufficio:

<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> 

In questo XML voglio aggiungere uno o più dipendenti. Come posso aggiungere elementi usando BaseX?

risposta

9

XQuery ha un impianto di aggiornamento, un official W3C recommendation, chiamato XQuery Update per modificare la struttura del documento.

È possibile utilizzare gli aggiornamenti in questo modo:

Dato è stato creato un dipendenti del database, con la commmand:

CREATE DB office /path/to/office.xml

Ora è possibile utilizzare la funzione XQuery Update e eseguire la seguente query:

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 

Questo annuncio sarà il nodo riferito da $up all'ultima posizione nella tua databa SE staff

Il BaseX Documentation Wiki contiene maggiori informazioni sugli aggiornamenti:

C'è un buon tutorial, XQuery Update for the impatient fornito da xmlmind.com.

Certo, è sufficiente utilizzare le API per emettere queste query, per cominciare suggerirei di attenersi alla GUI, in modo da poter vedere direttamente i risultati.

Spero che questo abbia aiutato, sentiti libero di chiedere ulteriori informazioni; o qui o sul BaseX Mailing List ufficiale.

+0

Grazie per le informazioni lasciatemi provare e implementare con l'aiuto delle informazioni fornite da Michael, .. –

Problemi correlati