Write XML file using VBScript

Dear All,
How can write XML file ( "attributes" format only ) using msxml + VBScript driven from DB.
Full code example will be appreciated.
Thanks.

ethar1Asked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

hb21l6Commented:
here you go!!!!

<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>

<script language="VB" runat="server">

  Sub Page_Load(Sender As Object, E As EventArgs)

    Dim strConnection As String
    Dim strSQL        As String
    Dim objDataSet    As New DataSet()
    Dim objConnection As OleDbConnection
    Dim objAdapter    As OleDbDataAdapter

    ' set the connection and query details
    strConnection = "Provider=Microsoft.Jet.OLEDB.4.0; " & _
                    "Data Source=" & Server.MapPath("db1.mdb")
    strSQL = "SELECT count(field1) as field1, field2 FROM table group by filed2 order by field2;"

    ' open the connection and set the command
    objConnection = New OledbConnection(strConnection)
    objAdapter = New OledbDataAdapter(strSQL, objConnection)

    ' fill the dataset with the data
    objAdapter.Fill(objDataSet, "Employees")

       'tells it where to store the info from the table you selected above
    objDataSet.WriteXml(Server.MapPath("chartme.xml"))
   
       'gives you a button to view the xml file you just created
    Response.Write("<a href='chartme.xml'>View XML file</a>")

  End Sub

</script>

let us know how you get on

hb

0
Cloud Class® Course: Certified Penetration Testing

This CPTE Certified Penetration Testing Engineer course covers everything you need to know about becoming a Certified Penetration Testing Engineer. Career Path: Professional roles include Ethical Hackers, Security Consultants, System Administrators, and Chief Security Officers.

ethar1Author Commented:
hb21l6
can you please elaborate a bit?
when I try to execute this vbs using : cscript s.vbs, it give an error :
H:\Web\s.vbs(1, 1) Microsoft VBScript compilation error: Expected statement

I change the strConnection to the appropriate one.
strSQL = "Select * from dailyreport"


what is this :
objAdapter.Fill(objDataSet, "Employees")

Thanks.
0
YZlatCommented:
please provide your sql statement or fields to be included in the xml file and your db table(s) list of fields
0
ethar1Author Commented:
   strSQL = "Select ReportID, PersonalContact , UserFav from dailyreport"
0
YZlatCommented:
Create xsl file. name it report.xsl

report.xsl file content:

<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
  <xsl:template match="/">
  <HTML>
<STYLE>
    .fr1  { width: 30em; }
    BODY       { margin:0px; width: 30em;
                 font-family: Arial, Helvetica, sans-serif; font-size: smaller;}
    P          { margin-top: .5em; margin-bottom: .25em; }
    HR         { color: #888888; }
    .H1        { color: #660033; font-weight: bold; vertical-align: top; }
    .Param     { font-size: smaller; vertical-align: top; }
    .tagline   { font-style: italic; font-size: smaller; text-align: right; }
    .body      { text-align: justify; background-color: linen; }
    .dingbat   { font-family: WingDings; font-style: normal; font-size: xx-small; }
    .person    { font-weight: bold; }
    .label     { font-weight: bold; }
    .self      { font-style: italic; font-size: smaller;}
    #menu      { border: 2px solid black; padding: 1em; background-color: #888833; }
    .menutext  { color: #FFFFDD; font-family: Times, serif; font-style: italic;
                 vertical-align: top; text-align:center; }
    .menuhead  { color: #FFFFDD; font-family: Times, serif; font-weight: bold;
                 vertical-align: top; text-align:center; margin-bottom: .5em; }
  </STYLE>  

    <xsl:for-each select="Report">
        <TABLE border="1" cellspacing="1" callpadding="1">
    <TR>
            <TD bgcolor="ff00ff">Report ID</TD>
            <TD bgcolor="ff00ff">Contact</TD>
            <TD bgcolor="ff00ff">User Fav</TD>
      </TR>            
    <TR>
            <TD width="160"><xsl:value-of select="ID" /></TD>
            <xsl:for-each select="Quota">
      
            <TD width="120"><xsl:value-of select="Contact" /></TD>
            <TD width="120"><xsl:value-of select="Fav" /></TD>
   
            </xsl:for-each>
      </TR>
  </TABLE>
   </xsl:for-each>
  </HTML>
  </xsl:template>
</xsl:stylesheet>

****************your asp file below*****
<%
  'Create XMLDOM Object
  Dim xmldoc
  Set xmldoc = Server.CreateObject("Microsoft.XMLDOM")

  If (xmldoc.childNodes.length = 0) Then
    ' Build the XML document
    Set root = xmldoc.createNode("element", "Reports", "")

    xmldoc.appendChild (root)

    ' Queries the database for customer data
    Sql = "SELECT ReportID, PersonalContact , UserFav from dailyreport"
    Set rs = conn.Execute(Sql)
 
    rs.MoveFirst

    'Loop through the recordset
    Do While Not rs.EOF
      Set onode = xmldoc.createNode("element", "Record", "")
      xmldoc.documentElement.appendChild (onode)
   
      Set inode = xmldoc.createNode("element", "ID", "")
      inode.Text = rs.fields(0)
      onode.appendChild (inode)

      Set child = xmldoc.createNode("element", "Contact", "")
        child.Text = rs.fields(1)
        inode.appendChild (child)
        Set child = xmldoc.createNode("element", "Fav", "")
        child.Text = rs.fields(2)
        inode.appendChild (child)
     
      rs.movenext
    Loop

    Set rs = Nothing
  End If

  'Save the XML doc
  xmldoc.save server.mappath("report.xml")


  '------ DISPLAY THE XML DATA ------------
  ' Linking XML and XSL together
  sourceFile = Server.MapPath("report.xml")
  styleFile = Server.MapPath("report.xsl")
 
  set source = Server.CreateObject("Microsoft.XMLDOM")
  source.async = false
  source.load(sourceFile)
  set style = Server.CreateObject("Microsoft.XMLDOM")
  style.async = false
  style.load(styleFile)
  Response.Write source.transformNode(style)
%>
***************
Dont' forget to include your database connection in the asp file above
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
ethar1Author Commented:
dear YZlat , thanks , but wot I want is creat xml document regardless database structure.
0
ap_sajithCommented:
Go through these links...

http://www.topxml.com/xml/guides/developers/ado_persist_xml.asp
http://www.4guysfromrolla.com/webtech/060601-1.shtml

OR Simply use the save method of ado...

<%
Set objRS=objConn.Execute ("Select * from <Table>")
objRS.Save Server.MapPath("test.xml"), 1
' MORE REFERENCE ON SAVE METHOD @ http://www.w3schools.com/ado/met_rs_save.asp
response.Write "Data Successfully Saved"
%>

Cheers!!
0
ap_sajithCommented:
Hi,
Any Updates?

Cheers!!
0
ap_sajithCommented:
Hi,
Did you manage to solve this?. Do you need further assistance with this?. Please assign the points to the suggestion(s) that helped you solve the question and close this question.

Cheers!!
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Web Languages and Standards

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.