2009-10-29 15 views
1

J'ai un XMLTextWriter qui écrit dans un flux d'une requête Web. Tout fonctionne comme il se doit:XMLTextWriter to XMLDocument

Dim wr As WebRequest = WebRequest.Create("https://wwwcie.ups.com/ups.app/xml/ShipAccept") 
    With wr 
     .Method = "POST" 
     .ContentType = "application/x-www-form-urlencoded" 
    End With 
    Dim requestStream As Stream = wr.GetRequestStream 
    Using requestStream 

     Dim x As New XmlTextWriter(requestStream, Encoding.UTF8) 

     Using x 
      With x 

       .WriteStartDocument() 
       'XML 

       .WriteStartElement("ShipmentAcceptRequest") 
       'ShipmentAcceptRequest 

       .WriteStartElement("Request") 
       'Request 

       .WriteElementString("RequestAction", sar.Request.RequestAction) 

       '/Request 
       .WriteEndElement() 

       .WriteElementString("ShipmentDigest", sar.ShipmentDigest) 

       '/ShipmentAcceptRequest 
       .WriteEndElement() 

       '/XML 
       .WriteEndDocument() 

       .Flush() 

      End With 
     End Using 

    End Using 

Comment puis-je intercepter ce XML qui est écrit en tant que type XMLDocument? J'ai essayé de l'arracher du flux mais cela m'a donné un 'Le flux ne supporte pas la lecture.' exception (qui ne m'a pas surpris).

Merci

+0

Ceci est toujours un problème pour moi, si quelqu'un peut aider. Ai-je juste besoin de réécrire tout le XML avec un autre TextWriter? –

Répondre

1

Je ne pense pas que vous pouvez intercepter le flux, car par sa définition est:

un écrivain qui fournit un moyen rapide, non-cache, aller de l'avant seulement de générer ruisseaux

non-cache et avant uniquement étant vos problèmes là-bas.

Alors ... tout ce qui vous empêche de le faire dans l'ordre inverse?

Ecrivez votre XML dans un XmlDocument, et lorsque vous avez terminé, appelez XmlDocument.WriteTo pour sortir le XML vers un XmlWriter (dans ce cas, votre XmlTextWriter est envoyé à votre flux de requête).

+0

Presque exactement ce que j'ai fini par faire il y a un moment. Mieux vaut tard que jamais, merci! –