用vb6.0将数据从记录集保存到XML

用vb6.0将数据从记录集保存到XML,xml,vb6,Xml,Vb6,问题是当记录为空时,数据不会存储在xml中 因此,如何将所有存储的数据转换为包含null的xml数据。如果您能向我们展示xml结构,它将更有帮助。不能在XML中直接存储null。但你有两个选择 缺少的标记将被视为空 使属性为nillable=true 您不能强制空值以这种方式导出为XML。ADO行集模式旨在有意地“省略”它们 您也没有指定要创建的特定模式,但是如果需要,可以很容易地模拟ADO模式 最好的方法是自己控制这个过程。下面是一个SAX示例,尽管我没有在这里模仿ADO模式: Dim R

问题是当记录为空时,数据不会存储在
xml


因此,如何将所有存储的数据转换为包含null的
xml
数据。

如果您能向我们展示xml结构,它将更有帮助。不能在XML中直接存储null。但你有两个选择

  • 缺少的标记将被视为空
  • 使属性为nillable=true


您不能强制空值以这种方式导出为XML。ADO行集模式旨在有意地“省略”它们

您也没有指定要创建的特定模式,但是如果需要,可以很容易地模拟ADO模式

最好的方法是自己控制这个过程。下面是一个SAX示例,尽管我没有在这里模仿ADO模式:

Dim Rs As New `Adodb.Recordset`
Rs.Open "select * from Customer ",Conn,adOpenDynamic,adLockOptimistic
if Rs.RecordCount > 0 then
    rs.Save App.Path & "\Customer.xml" , adPersistXML
end if
输出XML:

LongVal,StringVal,DoubleVal
65536,Fred,3.5
,Has-Null,1.23456
65537,Barney,37


您还可以使用常规逻辑和固有的VB6 I/O语句对内容进行暴力处理,并将其作为文件写入。如果您需要真正的UTF-8输出或其他东西,或者您的XML模式更复杂,那么这就有点麻烦了。

Sir Bob77。。你有电子邮件吗?我们目前不接受求职申请。
LongVal,StringVal,DoubleVal
65536,Fred,3.5
,Has-Null,1.23456
65537,Barney,37
<data>
    <row LongVal="65536" StringVal="Fred" DoubleVal="3.5"/>
    <row LongVal="" StringVal="Has-Null" DoubleVal="1.23456"/>
    <row LongVal="65537" StringVal="Barney" DoubleVal="37"/>
</data>