xml - 如何在 XQuery 结果中添加 xml 声明和处理指令?
问题描述
XQuery 的结果是如何以 xml 声明为前缀的,以及将其链接到 xslt 的行?
错误:
Stopped at /home/nicholas/git/xml/labs.xq, 8/6:
[XPST0003] Processing instruction has illegal name: xml.
询问:
xquery version "3.1";
for $doc in db:open("covid")
return
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="labs.xsl"?>
$doc
这样结果就可以与 xslt 一起使用了。也许将xml的声明和“链接”行放在查询之外?
也可以看看:
解决方案
XML 声明只能由您可以声明的序列化选项输出,例如
declare namespace output = "http://www.w3.org/2010/xslt-xquery-serialization";
declare option output:method 'xml';
XQuery 数据模型中没有作为节点的 XML 声明。
处理指令是一个节点,可以构造和前置,例如
for $doc in db:open("covid")
return
(<?xml-stylesheet type="text/xsl" href="labs.xsl"?>, $doc)
或者可能更干净或更明确
for $doc in db:open("covid")
return
document {
<?xml-stylesheet type="text/xsl" href="labs.xsl"?>,
$doc/node()
}
推荐阅读
- c++ - 无法捕获 CLion 发送的 SIGINT
- php - 如何搜索数组并存储其父项。
- java - 无法将图像的 URI 路径放入 Android Studio 中的 imageview
- r - 用于替换和修改变量的 dplyr 工作流程
- powershell - 将参数传递给 Powershell 中的应用程序调用
- java - 响应后如何关闭spring集成tcp连接
- unit-testing - 对自定义 CLion 插件进行单元测试
- javascript - 蓝色窗口在 3 秒后消失
- java - 通过更改列表类型进行 Android LiveData 转换
- java - Java 到 Kotlin 以不同的方法访问类特定的变量