【发布时间】:2016-03-15 11:11:58
【问题描述】:
我正在尝试使用 BaseX 将新元素插入到 xml 文档中。
declare variable $part external;
insert nodes $part as first into db:open("PARTDB")/assembly[@name="ZB09010"]
我使用 BaseX GUI 进行测试并定义了 $part 变量(通过单击 $ 图标)。
如果我使用“本地”变量,例如
let $up := <Employee Name="Joe">
<Personal>
<SSN>666-66-1234</SSN>
</Personal>
<StaffInfo>
<Position>Doctor</Position>
<AccountableTo>Jeff</AccountableTo>
</StaffInfo>
</Employee>
return
insert node $up as last into doc('office')/Staff
然后插入可以正常工作,但是,对于外部变量,每个作为保留 xml 字符的字符都将转换为 xml 转义字符序列,例如 示例:
我已经成功地通过使用函数 xquery:eval($part) 包装变量来使其工作,但这对我来说就像一个 hack。
我应该使用 xs:string 以外的类型来阻止翻译吗? 或者是否有一些我需要与外部变量一起使用的功能来防止翻译。 我还尝试用 CDATA 包装 $part xml 内容,但 xml 仍被转换为转义字符。
【问题讨论】: