Search code examples
xmlvb.netstringxmltextwriter

Exporting XmlTextWriter output to string using vb.net


I would like to export(convert) XmlTextWriter output data to string variable.

My code as follows :

        '' write data as xml
        Dim objX As New XmlTextWriter(Response.OutputStream, Encoding.UTF8)
        objX.WriteStartDocument()
        objX.WriteStartElement("Transaction")
        objX.WriteAttributeString("version", "1.0")
        objX.WriteElementString("id", "12")
        objX.WriteElementString("token", "4534gfdgdfhfst")


        objX.WriteEndElement()

        objX.WriteEndDocument()

        objX.Flush()

        objX.Close()
        Response.End()

the xml output am getting now is like this : 38824e4760a1b72f9bd95723a3bdffbd02280010.50en3475990rapids1 month rapidshare0.46587748175.136.184.1539/14/2012d7a1ff2200f9fe7b8b89d12fdc8be8f36293‌​712eS. how to make it as xml tags


Solution

  • You have configured the XmlTextWriter to write directly to the Response.OutputStream. If you wanted to export it to a string variable you could use a StringWriter that will write to a StringBuilder.

    Dim sb As New StringBuilder()
    Using sw As New StringWriter(sb)
        Using writer = XmlWriter.Create(sw)
            ' write the XML to the writer here
        End Using
    End Using
    ' At this stage the StringBuilder will contain the generated XML.
    

    as an alternative you could write to a MemoryStream:

    Using stream As New MemoryStream()
        Using writer = XmlWriter.Create(stream)
            ' write the XML to the writer here
    
            Dim xml As String = Encoding.UTF8.GetString(stream.ToArray())
            ' TODO: do something with the generated XML
        End Using
    End Using