使用XProc进行XML流式传输 [英] XML streaming with XProc
本文介绍了使用XProc进行XML流式传输的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用 xproc ,XML管道语言和 http://xmlcalabash.com/.我想找到一个流式处理大型xml文档的示例.例如,给出以下巨大 xml文档:
I'm playing with xproc, the XML pipeline language and http://xmlcalabash.com/. I'd like to find an example for streaming large xml documents. for example, given the following huge xml document:
<Books>
<Book>
<title>Book-1</title>
</Book>
<Book>
<title>Book-2</title>
</Book>
<Book>
<title>Book-3</title>
</Book>
<!-- many many.... -->
<Book>
<title>Book-N</title>
</Book>
</Books>
我应该如何在x-> N个文档(如
How should I proceed to loop (streaming) over x->N documents like
<Books>
<Book>
<title>Book-x</title>
</Book>
</Books>
并使用xslt处理每个文档?xproc有可能吗?
and treat each document with a xslt ? is it possible with xproc ?
推荐答案
在这里,您可以使用XProc来完成此工作,而XProc将与QuiXProc一起流
Here is how you could do it with XProc that would stream with QuiXProc
<p:declare-step xmlns:p="http://www.w3.org/ns/xproc" version="1.0">
<p:load href="hugedocument.xml"/>
<p:for-each>
<p:iteration-source select="/Books/Book"/>
<p:xslt>
<p:input port="stylesheet">
<p:document href="book.xsl"/>
</p:input>
<p:input port="parameters">
<p:empty/>
</p:input>
</p:xslt>
</p:for-each>
<p:wrap-sequence wrapper="Books"/>
<p:store href="hugedocument.res.xml"/>
</p:declare-step>
这篇关于使用XProc进行XML流式传输的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文