`
zhuqiang5138
  • 浏览: 31776 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

xquery在java中的应用

阅读更多
/**
 * 执行查询
 * @throws FileNotFoundException 
 */
	public static void select() throws FileNotFoundException {
		//文件
		String fileString = "src/com/farmer/city.xml";
		//CATALOG元素(根元素)下的 CD 元素下的所有 title 元素,并以字母顺序返回 title 元素
//		String query = "for $s in //CD/TITLE" +
//				" order by $s " +
//				"return $s";
		
		// HTML 表现出来
		String query = "<ul>" +
				"{"+
				"for $s in //city/id" +
				" order by $s " +
				//这个还是带TILTLE标签的 下面一个不带"return <li>{$s}</li>" +
				"return <li>{data($s)}</li>" +
				"}" +
				"</ul>";
		
		// 查询语句
		//String query = " for $s in /CATALOG/CD/PRICE" + " return $s";
		
		//并且所选取的 CD 元素下的 price 元素的值必须等于 10.90:
		//String query = " for $s in /CATALOG/CD[PRICE=10.90]/PRICE " + " return $s";
		
		//下面这个表达式可选取 CATALOG 元素下的 CD 元素下所有的 TITLE 元素,并且其中的 PRICE 元素的值必须大于 10.90
		//String query = " for $s in /CATALOG/CD[PRICE=10.90]/TITLE " + " return $s";
		
		// 生产文档对象
		Document document = getDocument(fileString);
		Configuration configuration = new Configuration();
		StaticQueryContext context = new StaticQueryContext(configuration,
				false);
		// 查询表达式对象
		XQueryExpression expression = null;
		try {
			expression = context.compileQuery(query);
			DynamicQueryContext context2 = new DynamicQueryContext(
					configuration);
			context2.setContextItem(new DocumentWrapper(document, null,
					configuration));

			final Properties props = new Properties();
			props.setProperty(OutputKeys.METHOD, "xml");
			//缩进
			props.setProperty(OutputKeys.INDENT, "yes");
			// 执行查询,并输出查询结果
			expression.run(context2, new StreamResult(System.out), props);
		} catch (XPathException e) {
			e.printStackTrace();
		}

	}
/**
	 * 生产文档对象
	 * 
	 * @param xml
	 *            文件名
	 * @return
	 */
	public static Document getDocument(String xml) {
		DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
		DocumentBuilder builder;
		Document document = null;
		try {
			builder = builderFactory.newDocumentBuilder();
                      //可以都的是文件流 或 文件地址。即:本地或网络的xml
                      //document = builder.parse(getStream(xml));  
			document = builder.parse(xml);
		} catch (ParserConfigurationException e) {
			e.printStackTrace();
		} catch (SAXException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		document.normalize();
		return document;
	}
public static void main(String[] args) throws Exception {
		select();
	}


下面是可能会执行出来的结果:
<?xml version="1.0" encoding="UTF-8"?>
<ul>
   <li>001</li>
   <li>002</li>
   <li>003</li>
   <li>004</li>
</ul>

参考文档:
http://www.ibm.com/developerworks/cn/xml/x-xjavaxquery/index.html

需要的jar包:saxon9ee.jar (必须要的)

分享到:
评论
2 楼 dolphin0618 2012-07-25  
我要把查询出来的数据不只是打印,我要存入变量里,方法是什么
1 楼 dolphin0618 2012-07-24  
你能把XML发一下么

相关推荐

    XQuery For Java 例子

    XQuery是一种功能强大的...通过阅读和理解这个示例,你将能更好地掌握如何在实际Java项目中应用XQuery。而`data.xml`文件则包含了用于查询的XML数据。确保正确解析和使用这个文件对于理解整个XQuery查询过程至关重要。

    在Java中使用XQJ解析XQuery.pdf

    通过以上步骤,Java开发者可以利用XQJ轻松地在Java应用程序中解析和处理XML数据,无论是从XML文件、数据库还是其他XML源获取数据。XQJ的出现使得Java与XML的结合更加紧密,为处理XML数据提供了强大而灵活的工具。

    基於saxon的java和xquery例程

    3. **XQuery处理**:Saxon的XQuery支持使得在Java环境中执行XQuery变得简单。通过`StaticQueryContext`编译查询,`DynamicQueryContext`执行查询,可以获取查询结果,这些结果可以是XML节点、数值、字符串等。 4. *...

    使用XQuery开发mashup

    【XQuery技术详解及其在开发mashup中的应用】 XQuery是一种由万维网联盟(W3C)制定的标准,专为从XML文档中提取和处理信息而设计。相较于传统的面向对象编程模型,如Java的Document Object Model(DOM)API,...

    基于XQuery 的XML 处理

    例如,在Java环境中,可以通过XQJ API(XQuery for Java)将XQuery集成到Java应用程序中,从而实现在Java程序中直接执行XQuery查询的功能。XQJ API类似于JDBC API,提供了创建和执行XQuery查询的方法,使得开发者...

    XQuery0.69

    在实际应用中,XQEngine可以被集成到任何Java应用程序中,作为XML数据处理的后端。例如,在Web应用中,可以用来动态检索数据库中的XML数据;在企业级系统中,可以用于集成来自不同系统的XML格式的数据;在数据分析...

    xml解析笔记(dom,xpath,xquery等)

    XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用在数据交换、配置文件、文档存储等领域。这篇笔记将围绕XML的解析方法,重点讨论DOM、XPath和XQuery这三种解析技术。 **DOM(Document Object...

    收集的xquery教程

    这使得开发者可以在Java应用程序中方便地利用XQuery的强大功能。 学习XQuery教程时,你将接触到以下几个关键知识点: 1. **基础语法**:了解如何定义变量、表达式和函数,以及如何使用XQuery的内置函数进行字符串...

    Java理论与实践:用XQuery进行屏幕搜集

    【Java理论与实践:用XQuery进行屏幕搜集】这篇文章探讨了如何利用XQuery技术解决智能手机在有限屏幕空间上浏览Web页面的问题。XQuery是一种W3C标准,主要用于从XML文档中提取信息,但它也能应用于HTML的屏幕搜集和...

    springboot+jsp+xquery实现登录认证

    在本文中,我们将深入探讨如何使用Spring Boot、JSP(JavaServer Pages)和XQuery来实现一个登录认证系统。Spring Boot是Spring框架的简化版本,它使得开发微服务和独立应用变得更加简单。JSP是一种用于创建动态网页...

    Java 与xml 源码

    Java 与XML是两种在软件开发中广泛应用的技术。XML(eXtensible Markup Language)是一种用于标记数据的语言,常用于存储和传输结构化数据。Java则是一种强大的、跨平台的编程语言,它提供了丰富的API来处理XML文档...

    XQuery权威指南(简码·扫描版)

    - 命名空间在XQuery中的作用和处理方法。 #### 四、表达式详解 - **3.1 表达式种类** - 不同类型的表达式,如路径表达式、FLWOR表达式等。 - **3.2 关键字和名称** - XQuery的关键字和名称规则。 - **3.3 查询中...

    maven-xquery-merger:[XQuery] xquery-merger的Maven插件

    在实际应用中,maven-xquery-merger插件常常与其他Maven插件如maven-resources-plugin(资源复制)、maven-surefire-plugin(单元测试)等配合使用,形成完整的构建流程。这不仅简化了XML数据处理项目的构建过程,也...

    JAVA与XMLpdf资料

    9. **EJB(Enterprise JavaBeans)**:在企业级Java应用中,XML用于配置EJB组件,如 ejb-jar.xml 和 web.xml 文件。 10. **集成开发环境(IDE)**:诸如Eclipse和IntelliJ IDEA等Java IDE也支持XML,提供语法高亮、...

    java_xml编程指南

    《Java XML编程指南》是一本面向Java开发人员的实用教程,旨在帮助读者深入理解XML(eXtensible Markup Language)在Java环境中的应用。XML作为一种数据交换格式,因其灵活性和可扩展性,广泛用于Web服务、配置文件...

    Java程序设计EJB、XML与数据库

    **EJB(Enterprise JavaBeans)**:EJB是Java EE的一部分,它提供了一种标准的组件模型,用于在分布式环境中构建可扩展的、安全的和事务性的企业级应用。EJB有三种主要类型:会话bean(Session Beans)处理客户端...

    (英文)XML.Programming.with.SQL-XML.and.XQuery1

    描述中的论文介绍了一种集成的数据库架构,它支持既有SQL应用程序使用XML扩展,也有独立运行的XQuery应用程序共同处理同一数据集。这种架构的关键在于它能够平滑地在关系型数据和XML数据之间进行转换,确保了数据...

    提高自己JAVA水平

    在提高JAVA水平的过程中,首先需要深入理解JAVA的基础与核心概念。这包括但不限于面向对象编程(OOP)的基本原则、类与对象的设计、封装、继承、多态等核心特性。此外,对于异常处理、线程管理、集合框架等高级主题...

Global site tag (gtag.js) - Google Analytics