【问题标题】:Format / Indent XML code while sending email using sp_send_dbmail [formatting xml code in mail body]使用 sp_send_dbmail [格式化邮件正文中的 xml 代码] 发送电子邮件时格式化/缩进 XML 代码
【发布时间】:2013-09-17 09:12:15
【问题描述】:

我正在尝试发送带有 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>

谢谢

【问题讨论】:

    标签: sql xml sql-server-2008 tsql dbmail


    【解决方案1】:

    msdb.dbo.sp_send_dbmail 有一个附加参数@body_format = 'HTML',一旦您使用适当的 HTML 标记对其进行修饰,就可以随意显示 XML。这是您可以将电子邮件正文的外观控制到您指定的级别的唯一方法,即使用适当的缩进和颜色编码。

    如果您可以不使用颜色编码,@body_format = 'TEXT'(默认值)很好,但无论哪种方式,您都需要做一些工作来按照您的指示缩进。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-08
      • 2011-06-18
      • 2011-06-02
      • 2020-05-09
      • 2014-02-10
      相关资源
      最近更新 更多