XQuery 是一种独立于 XSLT 的语言,而不是嵌入在 XSLT 中的语言。因此,根据您启动 XSLT 的方式,您可以寻找一种并行方法来启动 XQuery。例如,您可以尝试XQIB(我没有尝试过,但看起来很有希望)。
如果您需要更多帮助,请告诉我们您是如何运行 XSLT 处理器的,以及您的数据源是什么。
但是... 完全不清楚 XQuery 是否真的是您想要的。听起来您并不需要 XQuery 来完成在 XSLT 中无法完成的事情。我什至不确定你没有想到 jQuery ......这是一种完全不同的动物。
如果您能告诉我们更多关于这些记录的来源,将会很有帮助;它们以什么形式存储(XML DOM?);以及您需要对它们做什么。那么最好的解决方案可能是我们向您展示如何在 XSLT(或 Javascript)中执行您想要执行的操作。
更新
看着您的新评论,我意识到我可能误解了您试图在哪里运行 XQuery。您在上面提到了 javascript,我假设您想在浏览器中运行 XQuery,但现在我想我得出了错误的结论——您实际上是想在服务器上运行它吗?
无论您在何处运行它,XSLT 或 XQuery 都可以选择“仅与用户选择的 ID 匹配的记录”。但是,如果 XSLT/XQuery 正在服务器上运行,为了使其工作,您必须在用户选择 ID 后进行页面刷新或 AJAX 调用,以让服务器上的程序知道选择的 ID是。我不确定您是否已经设置了该架构,或者您是否仍在尝试弄清楚如何使用 AJAX 调用来根据用户输入检索数据。
听起来您永远不想将整组记录从服务器发送到客户端,甚至最初都不想(对吗?)。在这种情况下,用户如何知道可用 ID 的集合是什么?
无论如何,您的问题可能归结为“如何从 ASP.NET 运行 XQuery?” 我没有尝试这样做,但这篇文章可能会有所帮助:在 ASP.NET 中使用 Saxon.NET;或者这个:使用 XQuery 查询 XML 数据。
但同样,我认为 XQuery 可能不是您想要的。XQuery 不是 XSLT 中使用的查询语言——它更像 XPath。XQuery 是您可以用来代替XSLT 或在它旁边使用的东西。因此,如果您使用 XSLT 并且想要根据用户选择的 ID 过滤记录,假设您已经知道用户选择的 ID,那么简单的方法是在 XSLT/XPath 中,而不是启动单独的处理器。例如,你可以说
<xsl:for-each select="//record[@ID = $usersChosenID]"> ...
让我知道这是否接近您的解决方案。有多种方向可以扩展这个解释,但我不想花时间在没有痒的地方抓挠。