0

我有一个像

<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]')

但没有任何改变,为什么?

4

2 回答 2

2

您修改的 XQuery 需要声明和引用xsd命名空间:

SET @myXmlContent.modify('declare namespace xsd="..."; insert sql:variable("@res") as first into (/xsd:form-definition/xsd:page)[1]') 
于 2013-04-17T12:14:21.750 回答
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
于 2013-04-17T12:13:57.867 回答