2013-09-26 2 views
2

현재 BaseX 기본 XML 데이터베이스에 문제가 있습니다.BaseX - 여러 노드에 노드 {...}를 삽입합니다.

특정 노드의 특정 속성이 있는지 여부를 확인하고 값이 "true"인지 여부를 확인하려는 예제 데이터 세트가 있습니다. 존재하지 않으면 새로운 속성을 삽입하고 싶습니다.

if(fn:exists(//Dataset[@attribute="2"]/@b)) then 
    replace value of node //Dataset[@attribute="2"]/@b with "true" 
else 
    insert node (attribute { 'b' } { "CREATED!" }) into //Dataset[@attribute="2"] 

나는 순간에 직면하고있다 문제는 내가 예를 들어 유형 "데이터 세트"의 모든 노드를 반복하는 방법을 찾아 모든 단일 노드를 확인할 수 없다는 것입니다 : 이것은 하나의 노드에 대한 내 코드입니다. 그것은 항상 "삽입 대상으로 예상되는 단일 요소 또는 문서"라고 말합니다. 좋아

+6

당신은 대답로 편집을 게시과 이용 약관을 읽고 동의를해야한다. –

답변

1

, 오랫동안 봤하지만 15 분 이상이 질문을 게시에서 저를 저장 한 것 :

for $dataset in //mondial/Dataset 
let $DOCH := $dataset/@DOCH 
return 
if(fn:exists($DOCH)) then (
replace value of node $DOCH with "true") 
else (
    insert node (attribute DOCH {"true"}) into $dataset) 
관련 문제