2012-11-28 4 views
1

다음과 같은 문제가 있습니다. baseX를 데이터베이스로 사용하여 xquery 파일의 요소 값을 대체하려고합니다. XQuery에 코드는 다음과 같다 :BaseX XQuery 바꾸기

Expecting 'where', 'order' or 'return' expression 

:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<root xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"> 
<check> 
    <ok> 
     <elem>test</elem> 
     <help></help> 
    </ok> 
</check> 
</root> 

매번 내가 이런 오류가 발생합니다이 XQuery를 실행하려면 :

let $db := doc('update.xml') 

replace value of node $db//elem with 'haha' 

return <result> {$db//elem/text()} </result> 

XML 문서는 다음과 같은 요소를 포함 그래서 요소에서 "haha"라는 텍스트를 "test"로 바꾸려면 무엇을해야합니까? 이 코드 줄만 사용하면 작동하지만 URL-Parameter를 읽어야하므로 "replace ..."줄을 제외하고 더 많은 코드 줄이 필요합니다!

답변

1

let은 업데이트 문을 직접 포함하지 않을 수있는 flwor-expression을 시작합니다. 당신은이 return이 이들 사이에 넣어해야합니다 :

let $db := doc('update.xml') 
return 
    replace value of node $db//elem with 'haha' 

또한 임의의 계산을 할 수 있지만 모든 출력이 쿼리에서 반환 한하지 않도록합니다.

way to use updating statements and return a result at the same time은 없습니다.