当前位置: 首页>>代码示例>>Java>>正文


Java XQueryExpression.iterator方法代码示例

本文整理汇总了Java中net.sf.saxon.query.XQueryExpression.iterator方法的典型用法代码示例。如果您正苦于以下问题:Java XQueryExpression.iterator方法的具体用法?Java XQueryExpression.iterator怎么用?Java XQueryExpression.iterator使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在net.sf.saxon.query.XQueryExpression的用法示例。


在下文中一共展示了XQueryExpression.iterator方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: testPersonQuery

import net.sf.saxon.query.XQueryExpression; //导入方法依赖的package包/类
@Test
public void testPersonQuery() throws XPathException, XQException {

       Configuration config = Configuration.newConfiguration();
       StaticQueryContext sqc = config.newStaticQueryContext();
  	    DynamicQueryContext dqc = new DynamicQueryContext(config);
       dqc.setApplyFunctionConversionRulesToExternalVariables(false);

	String query = "declare base-uri \"../../etc/samples/xmark/\";\n" +
			"let $auction := fn:doc(\"auction.xml\") return\n" +
			"for $b in $auction/site/people/person[@id = 'person0'] return $b/name/text()";
  	    
	//dqc.setParameter(new StructuredQName("", "", "v"), objectToItem(Boolean.TRUE, config));
  	    XQueryExpression xqExp = sqc.compileQuery(query);
       SequenceIterator itr = xqExp.iterator(dqc);
       Item item = itr.next();
  	    assertNotNull(item);
  	    String val = item.getStringValue();
	assertEquals("Huei Demke", val);
	assertNull(itr.next());
}
 
开发者ID:dsukhoroslov,项目名称:bagri,代码行数:22,代码来源:SaxonQueryTest.java

示例2: testCollationQuery

import net.sf.saxon.query.XQueryExpression; //导入方法依赖的package包/类
@Test
public void testCollationQuery() throws XPathException {
       Configuration config = Configuration.newConfiguration();
       StaticQueryContext sqc = config.newStaticQueryContext();
       // this causes Saxon throw NPE and query processing!
       //sqc.declareDefaultCollation("");
  	    DynamicQueryContext dqc = new DynamicQueryContext(config);
       dqc.setApplyFunctionConversionRulesToExternalVariables(false);

	String query = "declare base-uri \"../../etc/samples/xmark/\";\n" +
			"let $auction := fn:doc(\"auction.xml\") return\n" +
			"for $i in $auction/site//item\n" +
			"where contains(string(exactly-one($i/description)), \"gold\")\n" +
			"return $i/name/text()";
			
  	    XQueryExpression xqExp = sqc.compileQuery(query);
       SequenceIterator itr = xqExp.iterator(dqc);
       Item item = itr.next();
  	    assertNotNull(item);
  	    assertNotNull(item.getStringValue());
}
 
开发者ID:dsukhoroslov,项目名称:bagri,代码行数:22,代码来源:SaxonQueryTest.java

示例3: createListOfXmlNodes

import net.sf.saxon.query.XQueryExpression; //导入方法依赖的package包/类
/**
 * Creates list variable of resulting XML nodes.
 * @param exp
 * @param dynamicContext
 * @return
 * @throws XPathException
 */
public static ListVariable createListOfXmlNodes(XQueryExpression exp, DynamicQueryContext dynamicContext) throws XPathException {
    final SequenceIterator iter = exp.iterator(dynamicContext);

    ListVariable listVariable = new ListVariable();
    while (true) {
        Item item = iter.next();
        if (item == null) {
            break;
        }

        XmlNodeWrapper value = new XmlNodeWrapper(item);
        listVariable.addVariable( new NodeVariable(value) );
    }

    return listVariable;
}
 
开发者ID:huajun2013,项目名称:ablaze,代码行数:24,代码来源:XmlUtil.java

示例4: execQuery

import net.sf.saxon.query.XQueryExpression; //导入方法依赖的package包/类
private Iterator<Object> execQuery(final String query) throws XQException {
    logger.trace("execQuery.enter; this: {}", this);
	long stamp = System.currentTimeMillis();
  	    
  	    QueryManagement qMgr = (QueryManagement) getQueryManagement();
  	    Query xQuery = qMgr.getQuery(query);
    Integer qKey = qMgr.getQueryKey(query);
  	    try {
  	   	    XQueryExpression xqExp = getXQuery(qKey, query, null);
       	Map<String, Object> params = getObjectParams();
   	    if (xQuery == null) {
        	clnFinder.setQuery(null);
        } else {
   	    	QueryBuilder xdmQuery = xQuery.getXdmQuery();
   	    	if (!(params == null || params.isEmpty())) {
       	    	xdmQuery.resetParams(params);
   	    	}
    		clnFinder.setQuery(xdmQuery);
   	    }
       	clnFinder.setExpression(xqExp);

        stamp = System.currentTimeMillis() - stamp;
	    logger.trace("execQuery; xQuery: {}; params: {}; time taken: {}", xQuery, params, stamp);
	    stamp = System.currentTimeMillis();
        SequenceIterator itr = xqExp.iterator(dqc);
        //Result r = new StreamResult();
        //xqExp.run(dqc, r, null);
        stamp = System.currentTimeMillis() - stamp;
	    logger.trace("execQuery.exit; time taken: {}", stamp);
        return new XQIterator(getXQDataFactory(), itr); 
       } catch (XPathException xpe) {
       	logger.error("execQuery.error: ", xpe);
       	throw convertXPathException(xpe);
       }
}
 
开发者ID:dsukhoroslov,项目名称:bagri,代码行数:36,代码来源:XQProcessorServer.java

示例5: testMapQuery

import net.sf.saxon.query.XQueryExpression; //导入方法依赖的package包/类
@Test
public void testMapQuery() throws XPathException {
       Configuration config = Configuration.newConfiguration();
       config.setDefaultCollection("");
       StaticQueryContext sqc = config.newStaticQueryContext();
  	    DynamicQueryContext dqc = new DynamicQueryContext(config);
       dqc.setApplyFunctionConversionRulesToExternalVariables(false);

       //String xml = "<map>\n" +
       //		"  <boolProp>false</boolProp>\n" +
       //		"  <strProp>XYZ</strProp>\n" +
       //		"  <intProp>1</intProp>\n" +
       //		"</map>";
   	//String baseURI = sqc.getBaseURI(); 
       //StringReader sr = new StringReader(xml);
       //InputSource is = new InputSource(sr);
       //is.setSystemId(baseURI);
       //Source source = new SAXSource(is);
       //source.setSystemId(baseURI);
       //config.getGlobalDocumentPool().add(config.buildDocumentTree(source), "map.xml");
       
	String query = "declare base-uri \"../../etc/samples/xdm/\";\n" +
			"declare variable $value external;\n" +
			"for $doc in fn:collection()/map\n" +
			"where $doc/intProp = $value\n" +
			//"where $doc[intProp = $value]\n" +
			"return $doc/strProp/text()";
       
  	    XQueryExpression xqExp = sqc.compileQuery(query);
  	    dqc.setParameter(new StructuredQName("", "", "value"), objectToItem(1, config));
       SequenceIterator itr = xqExp.iterator(dqc);
       Item item = itr.next();
  	    assertNotNull(item);
  	    String val = item.getStringValue();
	assertEquals("XYZ", val);
	assertNull(itr.next());
}
 
开发者ID:dsukhoroslov,项目名称:bagri,代码行数:38,代码来源:SaxonQueryTest.java

示例6: testJsonQuery

import net.sf.saxon.query.XQueryExpression; //导入方法依赖的package包/类
@Test
@Ignore
public void testJsonQuery() throws XPathException {
       Configuration config = Configuration.newConfiguration();
       config.setDefaultCollection("");
       StaticQueryContext sqc = config.newStaticQueryContext();
	sqc.setLanguageVersion(saxon_xquery_version); 
  	    DynamicQueryContext dqc = new DynamicQueryContext(config);
       dqc.setApplyFunctionConversionRulesToExternalVariables(false);

	String query = "declare base-uri \"../../etc/samples/json/\";\n" +
			//"declare base-uri \"C:/Work/Bagri/git/bagri/etc/samples/json/\";\n" +
			"declare namespace map=\"http://www.w3.org/2005/xpath-functions/map\";\n" +
			//"declare variable $value external;\n" +
			"for $map in fn:collection()\n" +
			//"where $map?Security?Symbol = $value\n" +
			"let $v := map:get($map, 'Security')\n" +
			//"where get($map, '-id') = '5621'\n" +
			"where map:get($v, 'Symbol') = 'IBM'\n" +
			"return $v?Name";
       
  	    XQueryExpression xqExp = sqc.compileQuery(query);
  	    //dqc.setParameter(new StructuredQName("", "", "value"), objectToItem("IBM", config));
       SequenceIterator itr = xqExp.iterator(dqc);
       Item item = itr.next();
  	    assertNotNull(item);
  	    String val = item.getStringValue();
	assertEquals("Internatinal Business Machines Corporation", val);
	assertNull(itr.next());
}
 
开发者ID:dsukhoroslov,项目名称:bagri,代码行数:31,代码来源:SaxonQueryTest.java


注:本文中的net.sf.saxon.query.XQueryExpression.iterator方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。