我有一个像
这样的xml文档<xsd:form-definition ...>
<xsd:page ..></xsd:page>
<xsd:page ..></xsd:page>
...
</xsd:form-definition>
我想在第一个<xsd:page>
元素
DECLARE @res XML = '<Subject>English</Subject>'
SET @myXmlContent.modify('insert sql:variable("@res") as first into (/form-definition/page)[1]')
但没有变化,为什么?
答案 0 :(得分:2)
修改的XQuery需要声明和引用xsd
命名空间:
SET @myXmlContent.modify('declare namespace xsd="..."; insert sql:variable("@res") as first into (/xsd:form-definition/xsd:page)[1]')
答案 1 :(得分:0)
试试这个 -
DECLARE @XML XML
SELECT @XML =
'<xsd_form-definition>
<xsd_page></xsd_page>
<xsd_page></xsd_page>
</xsd_form-definition>'
DECLARE @res XML = '<VehicleManufacturerID>abc</VehicleManufacturerID>'
SELECT @XML.modify('insert sql:variable("@res") into (xsd_form-definition/xsd_page)[1]')
SELECT @XML