Вставка атрибута в нескольких Узлах XML с помощью XML.modify () в SQL 2005

Попробуйте поместить файл persistance.xml в каталог WEB-INF (src/main/webapp/WEB-INF), поскольку в случае war именно там вы должны разместить файл persisntence.xml.

5
задан tpower 11 February 2009 в 13:49
поделиться

2 ответа

можно сделать это в выборе, который Вы используете для создания xml, с помощью параметра XSINILL.

http://msdn.microsoft.com/en-us/library/ms178079.aspx

(вот очень грубый пример),

--create 2 tables and put some data in them
create table node
(
   id int identity(1,1) primary key,
   node int
)
GO
create table node1
(
   id int identity(1,1) primary key,
   nodeid int foreign key references node(id),
   targetnode int
)
GO

insert into node
select 1
GO 5

insert into node1
select 1,2
union 
select 2,null
union 
select 3,2
union 
select 4,null
--

--select statement to generate the xml
SELECT TOP(1)
   (SELECT
      (  SELECT targetnode
         FROM    node1
         WHERE   nodeid = node.id 
         FOR XML AUTO,
         ELEMENTS XSINIL,
         TYPE
      )
   FROM    node FOR XML AUTO,
   ELEMENTS,
   TYPE
   )
FROM   node FOR XML RAW('root'),
       ELEMENTS
1
ответ дан 14 December 2019 в 04:49
поделиться

Это не возможно с изменять-функцией. Это только работает над единственным узлом.

Можно управлять им как строкой, хотя это определенно ужасно и возможно неправильно в некоторых случаях, в зависимости от фактической структуры XML.

Как это:

declare @xml as xml
set @xml = '<root>
 <node>
  <node1>
   <targetNode>
   </targetNode>
  </node1>
  <node1>
   <targetNode>
   </targetNode>
  </node1>
  <node1>
   <targetNode>
   </targetNode>
  </node1>
 </node>
</root>
'

set @xml = replace(cast(@xml as nvarchar(max)), '<targetNode/>', '<targetNode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true" />')
select @xml
2
ответ дан 14 December 2019 в 04:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: