Hi,
I've created a simple application that reads data from a
SQL Server, and appends this to an XML file.
The problem is, that the XML data structure seems to go to
the top level when I write the file. By this, I mean, if
my original XML file looks like...
<?xml version="1.0" encoding="utf-8" ?>
<inbox>
<message>
<mUID>1</mUID>
<mType>1</mType>
<mCreator>Demonstration Site</mCreator>
<mPriority>1</mPriority>
<mSubject>Test Subject</mSubject>
<mDateReceived>07/08/2003
13:13:00</mDateReceived>
</message>
</inbox>
Then when I run the following code...
Dim dReader As SqlClient.SqlDataReader
Dim dsMessage As New DataSet("inbox")
Dim daMessage As New
System.Data.SqlClient.SqlDataAdapter()
SqlConnection1.Open()
sqlRetrieveMessageDetails.Parameters
("@mUID").Value = Request.QueryString("mUID")
daMessage.SelectCommand = sqlRetrieveMessageDetails
daMessage.Fill(dsMessage, "message")
dsMessage.AcceptChanges()
dReader = sqlRetrieveMessageDetails.ExecuteReader
While dReader.Read
txtFrom.Text = dReader(3)
txtTo.Text = "This to be filled in"
txtSubject.Text = dReader(5)
txtDateSent.Text = dReader(4)
celMessageDetails.InnerHtml = dReader(6)
End While
dReader.Close()
SqlConnection1.Close()
If Request.QueryString("new") = "Yes" Then
Dim fileName As String
= "c:\inetpub\wwwroot\hbitl_umc\testInbox.xml"
Dim newStream As New System.IO.FileStream
(fileName, IO.FileMode.Append)
Dim xmlWriter As New System.Xml.XmlTextWriter
(newStream, System.Text.Encoding.ASCII)
dsMessage.WriteXml(xmlWriter)
xmlWriter.Close()
End If
My XML file turns to...
<?xml version="1.0" encoding="utf-8" ?>
<inbox>
<message>
<mUID>1</mUID>
<mType>1</mType>
<mCreator>Empower Systems Demonstration
Site</mCreator>
<mPriority>1</mPriority>
<mSubject>Test Subject</mSubject>
<mDateReceived>07/08/2003
13:13:00</mDateReceived>
</message>
</inbox>
<inbox>
<message>
<mUID>1</mUID>
<mType>1</mType>
<mPriority>1</mPriority>
<mCreator>Demonstration Site</mCreator>
<mDateCreated>2003-08-
07T13:13:00.0000000+01:00</mDateCreated>
<mSubject>Test Subject</mSubject>
<mDetails><B>This is a
<I>test</I> message</B></mDetails>
</message>
</inbox>
As you can see, the <inbox> root element is duplicated!
The new message element, and it's children, need to be
placed inside the <inbox> parent.
Can someone shed some light as to what I'm doing wrong.
TIA