Solved

xml in asp.net 1.1  vb.net

Posted on 2007-11-29
5
1,072 Views
Last Modified: 2010-04-21
Greetings,

I am trying to build an xml document from a datatable passed into it. I am making the function generic enough that it doesn't need to know the structure of the datatable or its field name and just return to me an xml string.

The variable is just my debugging variable, so it can be removed

 Public Function BuildXmlDoc(ByVal dtRecords As DataTable, ByRef strErrMsg As String) As String 'System.xml.XmlDocument
        'Local variables
        Dim xmldDoc As New System.xml.XmlDocument
        Dim xmleData As System.xml.XmlElement

        Dim drRow As DataRow
        Dim dcCol As DataColumn
        Dim arlFieldNames As New ArrayList
        Dim strFieldName As String = String.Empty
        Dim strXml As String
        'Build the xml string
        Try
            'Populate the field array list
            For Each dcCol In dtRecords.Columns
                arlFieldNames.Add(dcCol.ColumnName)
            Next
            'Create the xml document, all xml with will have the first tag be <DATA>
            xmleData = xmldDoc.CreateElement("DATA")
            'Now build each of the xml rows
            For Each drRow In dtRecords.Rows
                Dim xmleRow As System.xml.XmlElement
                strXml &= "dr<br>"
                'Set default values
                xmleRow = xmldDoc.CreateElement("xmlRow")
                strFieldName = String.Empty
                'Traverse through the field list and build the xml string
                For Each strFieldName In arlFieldNames
                    With xmleRow
                        .SetAttribute(strFieldName, drRow(strFieldName))
                    End With

                    strXml &= strFieldName & drRow(strFieldName) & "<br>"
                Next
                strXml &= "xmlerow" & xmleRow.InnerXml.ToString & xmleRow.InnerText.ToString & "<br>"
                'Add the row to the data element
                xmleData.AppendChild(xmleRow)
            Next
            'Add the data to xml document
            xmldDoc.AppendChild(xmleData)
        Catch ex As Exception
            strErrMsg = "cDataAccess.BuildXmlDoc: " & ex.Message & "<br />" & ex.StackTrace
        Finally
            'Clean up
            xmleData = Nothing
            arlFieldNames = Nothing
            dtRecords = Nothing
            dcCol = Nothing
            drRow = Nothing
        End Try
        'Return the value of the function
        Return "JRDxml " & strXml & "<br>" & xmldDoc.InnerText.ToString
    End Function

There is nothing coming back from here, and the variable xmleRow seems to have no data, and I am not sure why this is the case, because the datatable does get into it and no other errors are generated on the page. I copied this from another project that I had worked on before in my old work place, so I know it did work, just not sure why it doesn't work now.

Any help would be appreciated. Thanks.

JD
0
Comment
Question by:JDEE8297
  • 4
5 Comments
 
LVL 37

Accepted Solution

by:
samtran0331 earned 125 total points
ID: 20376213
Is this SQL Server?
It kind of looks like what you're trying to do can be accomplished with SQL's "FOR XML"

...like (using Northwind):
SELECT * FROM Customers FOR XML AUTO

http://www.extremeexperts.com/SQL/Articles/ForXML.aspx
0
 

Author Comment

by:JDEE8297
ID: 20376393
true, it could be done in sql server.

However, what I am planning to do is to take the contents of a datatable and passed into a stored procedure via xml string, and then inside the stored procedure traverse through the xml data and update the respective table(s) without having to call the same stored procedure over and over.

0
 

Author Comment

by:JDEE8297
ID: 20379482
figured it out, I was calling the wrong property on the xmldocument variable, instead of innertext or innerxml, I should have called outerxml.

Probably would have found it sooner, but working on a page that does not user code behind, so it makes it kind cumbersome to debug. Otherwise, problem solved. Thanks for your help
0
 

Author Closing Comment

by:JDEE8297
ID: 31411741
I am going to accept this. Gave me an idea on how to redo this. Thanks again.
0
 

Author Comment

by:JDEE8297
ID: 20383692
samtran0331 thanks again, even though I figured out the error, your solution gave me another idea that I will try out on my app. Thanks again.
0

Featured Post

Live: Real-Time Solutions, Start Here

Receive instant 1:1 support from technology experts, using our real-time conversation and whiteboard interface. Your first 5 minutes are always free.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Web site error 3 36
vb.net help 4 28
Obtain cell value using column ID in DataGrid using VB.NET 2 17
VB.NET 2008 - SQL Timeout 9 23
I recently went through the process of creating a Calendar Control of events with the basis of using a database to keep track of the dates that are selectable, one requirement was to have the selected date pop-up in a simple lightbox.  At first this…
It’s quite interesting for me as I worked with Excel using vb.net for some time. Here are some topics which I know want to share with others whom this might help. First of all if you are working with Excel then you need to Download the Following …
This Micro Tutorial will teach you how to censor certain areas of your screen. The example in this video will show a little boy's face being blurred. This will be demonstrated using Adobe Premiere Pro CS6.
This video shows how to quickly and easily add an email signature for all users on Exchange 2016. The resulting signature is applied on a server level by Exchange Online. The email signature template has been downloaded from: www.mail-signatures…

808 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question