标题:如何生成XML文件
取消只看楼主
junxi1
Rank: 1
等 级:新手上路
威 望:1
帖 子:213
专家分:0
注 册:2007-9-17
 问题点数:0 回复次数:9 
如何生成XML文件

我想在VB中将几张表生成一个XML文件,却找不到方法,请高手指点一下。谢谢。

搜索更多相关主题的帖子: XML文件 张表 VB 中将 
2007-09-17 15:09
junxi1
Rank: 1
等 级:新手上路
威 望:1
帖 子:213
专家分:0
注 册:2007-9-17
得分:0 
呵呵,能否具体一点,我可以把一张表生成一个XML文件,但却不知如何将多张表生成一个XML文件
谢谢!!!

foreach( in ){ }
2007-09-17 15:18
junxi1
Rank: 1
等 级:新手上路
威 望:1
帖 子:213
专家分:0
注 册:2007-9-17
得分:0 

哈哈,谢谢,好的,我看看,非常感谢


foreach( in ){ }
2007-09-17 16:56
junxi1
Rank: 1
等 级:新手上路
威 望:1
帖 子:213
专家分:0
注 册:2007-9-17
得分:0 
,呵呵,非常感谢!

foreach( in ){ }
2007-09-17 17:18
junxi1
Rank: 1
等 级:新手上路
威 望:1
帖 子:213
专家分:0
注 册:2007-9-17
得分:0 
运行 Print #1, "<field name=""" & s_FieldName(j) & "> value=" & rs.Fields(j).Value & """</field>"

提示错误:

缺少所需的空白区。
<field name="sno> value=2"</field>
--------------------------^

请问这个问题出现的关键在哪里?

foreach( in ){ }
2007-09-18 10:25
junxi1
Rank: 1
等 级:新手上路
威 望:1
帖 子:213
专家分:0
注 册:2007-9-17
得分:0 

运行Print #1, "<field name=""" & s_FieldName(j) & """> </field>"
是没有问题的。
但我要运行
Print #1, "<field name=""" & s_FieldName(j) & """> " & rs.Fields(j).Value & "</field>"
就会出现问题:
文本内容中发现无效字符
    <field name="sname">


foreach( in ){ }
2007-09-18 10:45
junxi1
Rank: 1
等 级:新手上路
威 望:1
帖 子:213
专家分:0
注 册:2007-9-17
得分:0 

msgbox "<field name=""" & s_FieldName(j) & """> " & rs.Fields(j).Value & "</field>"
运行是没有错,但我要写在XML文件中。
 
把msgbox换为print #1, 就会出现错误了。
提示是:
文本内容中发现无效字符。
<field name="sname">


foreach( in ){ }
2007-09-18 11:01
junxi1
Rank: 1
等 级:新手上路
威 望:1
帖 子:213
专家分:0
注 册:2007-9-17
得分:0 
显示出来的就是我想的结果

<field name="sno">2</field>

foreach( in ){ }
2007-09-18 11:23
junxi1
Rank: 1
等 级:新手上路
威 望:1
帖 子:213
专家分:0
注 册:2007-9-17
得分:0 

原来是因为rs.Fields(j).Value的值不能是汉字,只要是出现汉字,就提示发现无效字符
如何才可以显示汉字


foreach( in ){ }
2007-09-18 11:54
junxi1
Rank: 1
等 级:新手上路
威 望:1
帖 子:213
专家分:0
注 册:2007-9-17
得分:0 

测试通过。代码为:
Option Explicit

Private Sub Form_Load()
Dim conn As New ADODB.Connection
Dim ConString As String
Dim strTableName As String
Dim str As String
Dim sa As String
Dim pwd As String
Dim data1e As String

str = "192.168.0.1"
pwd = ""
data1e = "wh3"
ConString = "driver={sql server}; server=" & str & ";uid=sa ; pwd=" & pwd & ";database=" & data1e & ""

conn.Open ConString

Open "f:\d\x.xml " For Output As #1
Print #1, "<?xml version=""1.0"" encoding=""gb2312"" ?>"
Print #1, "<result>"
Close
strTableName = "student"
toXml strTableName, conn, "主表"

strTableName = "uses"
toXml strTableName, conn, "副表"
conn.Close

Open "f:\d\x.xml " For Append As #1
Print #1, "</result>"
Close
End Sub

Private Sub toXml(tableName As String, con As ADODB.Connection, t As String)
Dim rs As New ADODB.Recordset
Dim i As Integer
Dim s As Integer
Dim j As Integer
Dim str As String
Dim ss As Variant
str = "select * from " & tableName & ""
rs.CursorLocation = adUseClient

rs.Open str, con, adOpenKeyset, adLockReadOnly, adCmdText
s = rs.Fields.Count
ReDim s_FieldName(s) As String

For i = 0 To s - 1
s_FieldName(i) = rs.Fields(i).Name
Next

Open "f:\d\x.xml" For Append As #1

Print #1, "<table Name = """ & tableName & "为 " & t & """> "
For i = 0 To rs.RecordCount - 1
Print #1, "<row>"
For j = 0 To s - 1
ss = rs.Fields(j).Value
Print #1, "<field name=""" & s_FieldName(j) & """ value=""" & ss & """></field>"
Next
Print #1, "</row>"
rs.MoveNext
Next
Print #1, "</table>"
Close
rs.Close



End Sub


[此贴子已经被作者于2007-9-19 15:47:01编辑过]


foreach( in ){ }
2007-09-19 15:45



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-170609-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.795392 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved