2012-02-23 8 views
5

병원 및 사무실이라는 두 개의 XML 문서를 BaseX에 저장합니다.Basex를 사용하여 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> 

내가 하나 명 이상의 직원을 추가하려면이 XML에서 :

다음은 사무실 XML이다. BaseX를 사용하여 요소를 추가하려면 어떻게해야합니까?

답변

9

XQuery에는 문서 구조를 변경하는 XQuery 업데이트라는 official W3C recommendation이라는 업데이트 기능이 있습니다.

당신과 같이 업데이트를 사용할 수 있습니다

CREATE DB office /path/to/office.xml

는 이제 XQuery를 업데이트 기능을 사용하여 다음과 같은 쿼리를 실행할 수 있습니다 :

당신은 Section 명령으로, 데이터베이스 직원을 만들었습니다 감안할 :

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 

노드가 databa의 마지막 위치에 $up에 의해 참조이 의지 광고

xmlmind.com에서 제공하는 좋은 튜토리얼, XQuery Update for the impatient이 있습니다 :

BaseX Documentation Wiki 자체 staff 업데이트에 대한 자세한 정보가 포함되어 있습니다.

물론 이러한 쿼리를 실행하는 데 API를 사용할 수 있습니다. 시작하기 전에 GUI를 사용하는 것이 좋습니다. 그러면 결과를 직접 볼 수 있습니다.

희망이 있으면 도움이되었으므로 더 많은 정보를 요청하십시오. 여기 또는 공무원 BaseX Mailing List.

+0

감사합니다. 정보를 제공해 주셔서 감사합니다. 마이클이 제공 한 정보의 도움으로 구현해 드리겠습니다. –