SQL2005 ExpressデータベースからXMLファイルを作成するために従来のASPを使用する必要があります。私は500エラーを受け取ります。私は自分の問題が接続文字列であると信じていますが、これで新しい道を提供する可能性があるのかどうか疑問に思っていました。コードは次のとおりです。XMLを作成するための従来のASPスクリプト
<%
Dim objConn, strConnect, strSQL, rs, tb, objFSO, xmlFile, objWrite
xmlFile = Server.MapPath("inventory.xml")
tb = chr(9)
set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=SQLOLEDB;Data Source=mybox.com;Initial Catalog=myDB;UserId=myID;Password=myPW;"
If Not objFSO.FileExists(xmlFile) Then objFSO.CreateTextFile(xmlFile)
set objWrite = objFSO.OpenTextFile(xmlFile, 2)
objWrite.WriteLine("<?xml version=""1.0"" encoding=""ISO-8859-1""?>")
objWrite.WriteLine("<data>")
strSQL = "SELECT * FROM table1"
Set rs = objConn.Execute(StrSQL)
Do While not rs.EOF
objWrite.WriteLine(tb & "<marker>")
objWrite.WriteLine(tb & tb & "<name>" & rs("name") & "</name>")
objWrite.WriteLine(tb & tb & "<address>" & replace(rs("address"),"&","&") & "</address>")
objWrite.WriteLine(tb & tb & "<city>" & rs("city") & "</city>")
objWrite.WriteLine(tb & tb & "<state>" & rs("size") & "</state>")
objWrite.WriteLine(tb & tb & "<zipcode>" & rs("zipcode") & "</zipcode>")
objWrite.WriteLine(tb & tb & "<lat>" & rs("lat") & "</lat>")
objWrite.WriteLine(tb & tb & "<lng>" & rs("lng") & "</lng>")
objWrite.WriteLine(tb & "</marker>")
rs.MoveNext
Loop
objWrite.WriteLine("</data>")
objWrite.Close()
%>
誰もが共有できる新しい視点に感謝します。 ありがとう、 - マット
あなたの500のエラーには関係ないので、これはコメントに過ぎませんが、あなたの出力に整形式のXMLを確実にするためには、各レコードのデータフィールドをサニタイズする必要があります。これは少なくとも、迷いのアンパサンド(&)、less -thans(<)、あなたのデータに含まれる可能性のある他のいくつかの迷子文字を探し、文字データが多すぎるため単純に処理できない場合はcdataセクションを使用することを意味します。 –
また、正確なエラーメッセージを見つけることができるはずです。エラー500は、私たちが知りたい実際のエラーを囲むために作成されたHTTPエラーだけです。 –
あなたのエラーに関係しない別のニックは、 '.FileExists()'をチェックすることは良い考えではないということです。代わりに、エラーを適切にチェックして処理するコードで、 'CreateTextFile()'にあなたの呼び出しをラップしてください。 –