【发布时间】:2011-04-21 19:59:49
【问题描述】:
在我的 XQuery 中,我有一个 xml 节点存储在变量 $d 中,例如:
<topic id="IL27TRM409WedNov1919274820081">
<title>Access Switch Failure</title>
<body>
and Reacting</i> feature of the <i>SMSC User Guide</i>.</p>
</body>
</topic>
我现在的问题是,由于我需要在上面的文档顶部添加三个处理指令,包括DocType声明,目前结果文档只是一个纯XML节点。所以基本上我想添加以下三行:
<?xml version="1.0" encoding="UTF-8"?>
<?exist-serialize indent="no" output-doctype="yes"?>
<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
在顶部。我尝试将concat() 用于$d,但失败了。我想知道这种显式的 XML 内容操作在 XQuery 中是否可行,否则我认为我必须对我的 XSLT 进行更改以拥有 $d Borned-with processing-instructions。
【问题讨论】:
-
您的第一行是 XML 声明,第二行是处理指令,第三行是 DOCTYPE 声明。三者中只有一个是处理指令。
-
@Michael:那是不是说第一行和第三行可以更直接地放?
-
不,相反。 XQuery 1.0 具有用于生成处理指令的语法。它没有生成 XML 声明或 DOCTYPE 声明的语法。