XQuery HTML格式
XQuery 还可用于将 XML 文档转换为 HTML 页面。
让我们举一个例子来看看它是如何工作的:
让我们以一个名为“books.xml”的 XML 文件为例,内容如下:
<bookstore>
<book category="web">
<title lang="en">快速入门HTML</title>
<author>Eric</author>
<year>2012</year>
<price>200.00</price>
</book>
<book category="children">
<title lang="en">汇编语言</title>
<author>Jack</author>
<year>2005</year>
<price>600.00</price>
</book>
<book category="programming">
<title lang="en">Java编程思想</title>
<author>James Gowsling</author>
<author>Peter Brown</author>
<author>Sri Bala</author>
<author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
<year>2003</year>
<price>400.00</price>
</book>
<book category="web" cover="paperback">
<title lang="en">Web开发入门到高级</title>
<author>Aryan Tomar</author>
<year>2013</year>
<price>150.00</price>
</book>
</bookstore>
books.xqy:
<ul>
{
for $x in doc("books.xml")/bookstore/book/title
order by $x
return <li>{$x}</li>
}
</ul>
本示例将选择 bookstore 元素下的 book 元素下的所有 title 元素,并按字母顺序返回 title 元素。
现在,创建一个基于 Java 的 XQuery 执行程序来读取 books.xqy,将它传递给 XQuery 表达式处理器,并执行该表达式。
package com.yiidian;
import com.saxonica.xqj.SaxonXQDataSource;
import javax.xml.xquery.*;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
public class XQueryTester {
public static void main(String[] args){
try {
execute();
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
catch (XQException e) {
e.printStackTrace();
}
}
private static void execute() throws FileNotFoundException, XQException{
InputStream inputStream = new FileInputStream(new File("books.xqy"));
XQDataSource ds = new SaxonXQDataSource();
XQConnection conn = ds.getConnection();
XQPreparedExpression exp = conn.prepareExpression(inputStream);
XQResultSequence result = exp.executeQuery();
while (result.next()) {
System.out.println(result.getItemAsString(null));
}
}
}
输出结果为:
热门文章
优秀文章