我正在尝试使用XML代码作为正文发送dbmail,请参阅下面的代码,显示相同的内容,
declare @xml xml = '<?xml version="1.0"?>
<Order>
<Date>2003/07/04</Date>
<CustomerId>123</CustomerId>
<CustomerName>Acme Alpha</CustomerName>
<Item>
<ItemId> 987</ItemId>
<ItemName>Coupler</ItemName>
<Quantity>5</Quantity>
</Item>
<Item>
<ItemId>654</ItemId>
<ItemName>Connector</ItemName>
<Quantity unit="12">3</Quantity>
</Item>
<Item>
<ItemId>579</ItemId>
<ItemName>Clasp</ItemName>
<Quantity>1</Quantity>
</Item>
</Order>'
--SELECT @xml
declare @bodyprep varchar(max)
select @bodyprep = cast(@xml as varchar(max))
EXEC msdb. dbo.sp_send_dbmail
@profile_name='Profile-A' ,
@recipients ='.com',
@from_address = '.com' ,
@subject = 'test',
@body = @bodyprep
但我收到的邮件未对齐,如下所示,
<Order><Date>2003/07/04</Date><CustomerId>123</CustomerId><CustomerName>Acme Alpha</CustomerName><Item><ItemId> 987</ItemId><ItemName>Coupler</ItemName><Quantity>5</Quantity></Item><Item><ItemId>654</ItemId><ItemName>Connector</ItemName><Quantity unit="12">3</Quantity></Item><Item><ItemId>579</ItemId><ItemName>Clasp</ItemName><Quantity>1</Quantity></Item></Order>
有没有办法格式化或缩进上面的XML代码?
我想发送一个格式化的代码,如下所示,
<Order>
<Date>2003/07/04</Date>
<CustomerId>123</CustomerId>
<CustomerName>Acme Alpha</CustomerName>
<Item>
<ItemId> 987</ItemId>
<ItemName>Coupler</ItemName>
<Quantity>5</Quantity>
</Item>
<Item>
<ItemId>654</ItemId>
<ItemName>Connector</ItemName>
<Quantity unit="12">3</Quantity>
</Item>
<Item>
<ItemId>579</ItemId>
<ItemName>Clasp</ItemName>
<Quantity>1</Quantity>
</Item>
</Order>
由于
答案 0 :(得分:0)
msdb.dbo.sp_send_dbmail
有一个额外的参数@body_format = 'HTML'
,一旦您使用正确的HTML标记对其进行修饰,您就可以根据需要显示XML。这是您可以将电子邮件正文的外观控制到您指定的级别的唯一方法,即使用适当的缩进和颜色编码。
如果你可以不使用颜色编码,@body_format = 'TEXT'
(默认值)就可以了,但无论哪种方式,你都有一些工作可以在你指示的时候缩进。