gpt4 book ai didi

xslt - BaseX:在哪里声明要对其执行查询的 XML 文档

转载 作者:行者123 更新时间:2023-12-01 02:27:54 26 4
gpt4 key购买 nike

使用 BaseX 程序,我能够使用 XPath 和 XQuery 来查询位于我的主目录中的 XML 文档,但是我在 XSLT 中执行相同操作时遇到了问题。

我查询的文档是 BookstoreQ.xml .

XPath 版本,运行完全正常:

doc("/home/ioannis/Desktop/BookstoreQ.xml")/Bookstore/Book/Title

我要执行的 XSLT 代码:
<xsl:stylesheet version = "2.0" xmlns:xsl = "http://www.w3.org/1999/XSL/Transform">
<xsl:output method= "xml" indent = "yes" omit-xml-declaration = "yes" />
<xsl:template match = "Book"></xsl:template>
</xsl:stylesheet>

我读了 BaseX' documentation on XSLT ,但没有设法找到解决方案。我如何运行给定的 XSLT?

最佳答案

BaseX 不直接支持 XSLT,您必须使用 XQuery 函数调用它(不过这很容易)。有两个函数可以执行此操作,一个用于返回 XML 节点( xslt:transform(...) ),另一个用于将文本作为字符串返回( xslt:transform-text(...) )。你需要第二个。

xslt:transform-text(doc("/home/ioannis/Desktop/BookstoreQ.xml"),
<xsl:stylesheet version = "2.0" xmlns:xsl = "http://www.w3.org/1999/XSL/Transform">
<xsl:output method= "xml" indent = "yes" omit-xml-declaration = "yes" />
<xsl:template match = "Book"></xsl:template>
</xsl:stylesheet>
)

两者都可以使用 XSLT 作为节点(此处使用)调用,方法是将其作为字符串传递或提供包含 XSLT 代码的文件的路径。

关于xslt - BaseX:在哪里声明要对其执行查询的 XML 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14946060/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com