如何将 xml 声明和处理指令添加到 XQuery 结果之前?
How to prepend an xml declaration and processing instructions to an XQuery result?
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 的声明和“链接”行放在查询之外?
另见:
How to link up XML file with XSLT file?
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()
}
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 的声明和“链接”行放在查询之外?
另见:
How to link up XML file with XSLT file?
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()
}