我在eXist-db(1.4.2)中有一组xml文件。
它们的结构与此类似:
<magazine>
<issue.number>22</issue.number>
<article>
<title>first article</title>
<subject>James</subject>
</article>
<article>
<title>second article</title>
<subject>Billy</subject>
</article>
</magazine>
我希望通过REST api查询所有文件:http://localhost:8080/exist/rest/db/folder/test.xq
结果是:
<entries>
<entry>
<name>James</name>
</entry>
<entry>
<name>Billy</name>
</entry>
<entries>
我希望能够设置xquery输出的样式。我已经尝试通过在我的.xq开头引用样式表来实现这一目的。所以现在test.xq以<xml>
<?xml-stylesheet type="application/xml" href="test.xsl"?>
无论我改变什么,我都得到的不仅仅是一串文字,根本没有风格。
我哪里错了?
我只是写了一个写得不好的样式表吗?或者我错误地认为我可以在.xq中使用.xsl?
答案 0 :(得分:4)
要使浏览器完成xslt转换,样式表处理指令应出现在文档的第一个XML元素(http://www.w3.org/TR/xml-stylesheet/)之前;
可以通过以下方式构建处理指令来添加处理指令:
processing-instruction xml-stylesheet {'type="application/xml"','href="test.xsl"'},
<myxml/>
另一种方法是使用transform()函数在服务器端进行转换: