0
다음 코드를 사용하여 문자열에 저장된 XML 파일에서 일부 결과를 가져옵니다. 그러나 xquerycompiler는 이것을 내가 <result></result>
에 넣도록 요구합니다. 그들을 묶어서 출력을 문자열로 가져올 수 없습니까? 여기 내 코드입니다 :Java에서 XQueryCompiler를 사용하여 값만 추출하십시오.
Configuration saxonConfig = new Configuration();
Processor processor = new Processor(saxonConfig);
XQueryCompiler xqueryCompiler = processor.newXQueryCompiler();
XQueryExecutable xqueryExec = xqueryCompiler.compile("<result>{/book/chapter}</result>");
XQueryEvaluator xqueryEval = xqueryExec.load();
xqueryEval.setSource(new SAXSource(new InputSource(new StringReader(xmltext))));
XdmDestination destination = new XdmDestination();
xqueryEval.setDestination(destination);
xqueryEval.run();
System.out.println(destination.getXdmNode());
어려움을 볼 수는 없지만 요구 사항을 완전히 이해하고 있는지 확신 할 수 없습니다. 입력은 무엇이며 출력은 무엇입니까? 쿼리가'/ book/chapter'로 축소되면 어떤 실패를합니까? –
이것은 내가 얻는 오류입니다 : "systemId *가없는 * module의 1 행에 오류가 있습니다 : 하나의 루트 노드 만 XdmDestination에 쓸 수 있습니다". 내 프로그램은 여러 장을 생성하지만 루트 노드에 포함되어 있지 않기 때문에 문제가 발생합니다. 해결책은 무엇입니까? – Jyotiska
결과와 같은 요소 노드에서 챕터를 래핑하지 않으려면 XQuery document-node {} 생성자를 사용하여 문서 노드에서 래핑 할 수 있습니다. –