Вопрос

Итак, я извлекаю данные из базы данных SQL Server 2000, а затем преобразую их в XML, используя FOR XML AUTO.

XML, который я получаю обратно, выглядит примерно так.

<Order OrderNumber="2000004" DeliveryPickupCharge="5.9900" SalesTaxTotal="0.0000"      SubTotal="0.0000" Total="5.9900">
  <Customer FirstName="Anthony" LastName="Caporale">
  <Product ProductName="Paper Towels">
  <OrderItem ItemQuantity="1" ItemPrice="8.5900" Total="8.5900" />
</Product>
<Product ProductName="Bathroom Tissue - Giant Roll">
  <OrderItem ItemQuantity="2" ItemPrice="7.1500" Total="14.3000" />
</Product>
<Product ProductName="Napkins - 1-Ply">
  <OrderItem ItemQuantity="1" ItemPrice="3.4900" Total="3.4900" />
</Product>
<Product ProductName="Facial Tissues - 2-Ply - White">
  <OrderItem ItemQuantity="2" ItemPrice="2.0500" Total="4.1000" />
</Product>
<Product ProductName="Anti-Perspirant &amp; Deodorant - Ultra DryCool Rush">
  <OrderItem ItemQuantity="2" ItemPrice="3.5900" Total="7.1800" />
</Product>
<Product ProductName="Flushable Wipes - Fresh Mates Cloths - Refill">
  <OrderItem ItemQuantity="2" ItemPrice="2.9500" Total="5.9000" />
</Product>

Во-первых, в 2000 году нет Root ('whatever'), так есть ли какой-нибудь способ добавить корневой узел в T-SQL?Кроме того, есть ли способ обернуть все продукты в тег products?Я не совсем понимаю, почему возвращаемый XML находится в такой плохой форме.Я мог бы немного подправить это, если бы я был в SQL 2005.К сожалению, на данный момент я застрял с 2000 годом.

Спасибо

Это было полезно?

Решение

Вы можете манипулировать XML-файлом по своему желанию с помощью ДЛЯ XML ЯВНОГО режим.Я считаю, что это намного сложнее, чем AUTO (или путь 2k5), но он отлично работает, как только вы его запускаете.

Другие советы

Я знаю, что в 2005 году использование вложенных выборок позволяло вам встраивать несколько результатов в один основной тег (несколько продуктов в Products), при этом ensted seelect также объявлялся для XML AUTO.

Вы также могли бы использовать этот метод, чтобы обернуть все в корневой тег, используя один большой вложенный select .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top