Xquery를 사용하여 어떻게 다음 xml 문서에 xquery 표현식에 변수를 포함시킬 수 있습니까? 나는Xquery 표현식에서 변수 사용
<CD>
<TITLE>Picture book</TITLE>
<ARTIST>Simply Red</ARTIST>
<COUNTRY>EU</COUNTRY>
<COMPANY>Elektra</COMPANY>
<PRICE>7.20</PRICE>
<YEAR>1985</YEAR>
</CD>
<CD>
<TITLE>Red</TITLE>
<ARTIST>The Communards</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>London</COMPANY>
<PRICE>7.80</PRICE>
<YEAR>1987</YEAR>
</CD>
<CD>
<TITLE>Unchain my heart</TITLE>
<ARTIST>Joe Cocker</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>EMI</COMPANY>
<PRICE>8.20</PRICE>
<YEAR>1986</YEAR>
</CD>
가 나는 년에 모든 CD를 반환하는 쿼리를 실행해야> 내가 변수로 "여기서"조항의 구성 요소가 좋아 싶어 1986 년, 나는에 YEAR > 1986
를 저장하는 의미 다음과 같은 XML 문서를 가지고 쿼리에서 변수 세 가지 변수에 사용할 여기 나는 무엇을 지금까지
String queryString =
"declare variable $field :=" +"YEAR"+";"+
"declare variable $operator :=" +">"+";"+
"declare variable $value :=" +"1986"+";"+
"declare variable $docName as xs:string external;" + sep +
"for $cat in doc($docName)/*/"+ "CD" +
"where $cat/$field $operator $value" +
"order by $cat/$field" +
"return $cat";
XQExpression expression = conn.createExpression();
expression.bindString(new QName("docName"), filename,
conn.createAtomicType(XQItemType.XQBASETYPE_STRING));
results = expression.executeQuery(queryString);
return results.getSequenceAsString(new Properties());
내 쿼리 식는, 내가 변수를 사용하여 문제가 발생하고 생각 완벽하지, 어느 하나가 나를 도울 수
이걸 해결해 줘? 감사합니다.
답장을 보내 주셔서 감사합니다. 예, 올바른 변수는 운영자에게 사용할 수 없습니다. 하지만 쿼리에서 $ field 및 $ value 변수를 유지하고 명시 적으로 연산자를 지정할 수 있습니까? 나는 "cat/$ field"+ ">" "$ value"와 같이 쿼리를 변경하는 것을 의미합니다. 이것이 가능한가? – Lucy
@Lourin - 나는 이것을하기 위해'saxon : evaluate()'과 같은 확장 함수를 사용해야한다고 생각한다. 어떤 프로세서를 사용하고 있습니까? –
xqj를 사용 중입니다. 방금 XQuery에서 작업을 시작했습니다. saxon을 사용할 수 있습니까? xqj에서 evaluate()을 사용할 수 있습니까? 감사합니다 – Lucy