Pergunta

Então, eu estou puxando dados de um DB SQL Server 2000, em seguida, convertê-lo para XML usando PARA AUTO XML.

O XML eu voltar esta aparência.

<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>

Em primeiro lugar, em 2000, não há nenhuma Root ( 'o que quer'), então há alguma maneira de adicionar um nó raiz na T-SQL? Além disso, há uma maneira de envolver todos os produtos em uma etiqueta de produtos? Eu não começ completamente por que o XML retornado é de tal forma ruim. Eu poderia consertá-la um pouco, se eu estava em SQL 2005. Infelizmente, eu estou preso a 2000 no momento.

Graças

Foi útil?

Solução

Você pode manipular o XML com seu desejo com a FOR XML EXPLICIT de modo. Eu acho é meio caminho mais complexo do que AUTO (ou o 2k5 PATH), mas ele funciona muito bem uma vez que você ir buscá-la.

Outras dicas

Eu sei que em 2005 usando seleciona aninhadas permite embutir vários resultados em uma tag núcleo (produto múltiplo em produtos) com o seelect ensted também ser declarado para AUTO XML.

Você também pode usar esta técnica para tudo o envoltório em uma tag raiz usando um grande SELECT aninhada.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top