如何保存XML文件

lxq19851204 2010-07-13 10:37:38
Set oDOM = New MSXML2.DOMDocument
Set xXMLpi = oDOM.createProcessingInstruction("xml", "version='1.0' encoding='utf-8'")

With oTransMaster
Session = ""
Session = Session & "<Transaction>" & Chr(13) & Chr(10)
Session = Session & Chr(9) & "<Order>" & Chr(13) & Chr(10)

'add TransID or TransNO
If sPrintReceiptNo = "0" Then
Session = Session & Chr(9) & Chr(9) & "<TransID> " & Format(Trim$(.TransID), "00000000") & "</TransID>" & Chr(13) & Chr(10)
ElseIf sPrintReceiptNo = "1" Then
Session = Session & Chr(9) & Chr(9) & "<TransNO>" & .TransNo & " </TransNO>" & Chr(13) & Chr(10)
End If

'add TermID
Session = Session & Chr(9) & Chr(9) & "<TermID>" & .TermID & "</TermID>" & Chr(13) & Chr(10)

'add TransTime
Session = Session & Chr(9) & Chr(9) & "<TransTime>" & .TransTime & "</TransTime>" & Chr(13) & Chr(10)

'add Table and Cover
If .ManualKey <> "" Then
Session = Session & Chr(9) & Chr(9) & "<TableID>" & .ManualKey & "</TableID>" & Chr(13) & Chr(10)
If .Covers <> "0" Then
Session = Session & Chr(9) & Chr(9) & "<Cover>" & .Covers & "</Cover>" & Chr(13) & Chr(10)
End If
End If

'add Cashier Name
Session = Session & Chr(9) & Chr(9) & "<CashierName>" & .CashierName & "</CashierName>" & Chr(13) & Chr(10)

'add Total Price
Session = Session & Chr(9) & Chr(9) & "<Total>" & .Total & "</Total>" & Chr(13) & Chr(10)

'add item detail
For iCtr = 1 To .DetailCollection.Count
Set oTD = .DetailCollection.Item(iCtr, True)
If oTD.ItemStatus = eItemStatus.ItemReturn Then
End If
If oTD.ItemStatus = eItemStatus.ItemVoid Then
End If
Session = Session & Chr(9) & Chr(9) & "<Item>" & Chr(13) & Chr(10)

'add ItemID
Session = Session & Chr(9) & Chr(9) & Chr(9) & "<ItemID>" & oTD.ItemID & "</ItemID>" & Chr(13) & Chr(10)

'add item name or description
If sReceiptPrintDescription = "0" Then
Session = Session & Chr(9) & Chr(9) & Chr(9) & "<Name>" & oTD.name & "</NameID>" & Chr(13) & Chr(10)
ElseIf sReceiptPrintDescription = "1" Then
Session = Session & Chr(9) & Chr(9) & Chr(9) & "<InventoryDesc>" & oTD.InventoryDesc & "</InventoryDesc>" & Chr(13) & Chr(10)
ElseIf sReceiptPrintDescription = "2" Then
Session = Session & Chr(9) & Chr(9) & Chr(9) & "<Name>" & oTD.name & "</NameID>" & Chr(13) & Chr(10)
Session = Session & Chr(9) & Chr(9) & Chr(9) & "<InventoryDesc>" & oTD.InventoryDesc & "</InventoryDesc>" & Chr(13) & Chr(10)
End If

'add item Quantity
Session = Session & Chr(9) & Chr(9) & Chr(9) & "<Quantity>" & oTD.Qty & "</Quantity>" & Chr(13) & Chr(10)

If oTD.ContinmentCollection.Count > 0 Then
For jCtr = 1 To .DetailCollection.Count
Set oCD = .DetailCollection.Item(jCtr, True)
'add Condiment Name
Session = Session & Chr(9) & Chr(9) & Chr(9) & "<Modifier> " & Chr(13) & Chr(10)
Session = Session & Chr(9) & Chr(9) & Chr(9) & Chr(9) & "<CondimentName> " & oCD.CondimentName & "</CondimentName> " & Chr(13) & Chr(10)
Session = Session & Chr(9) & Chr(9) & Chr(9) & "</Modifier> " & Chr(13) & Chr(10)
Next jCtr
End If
Session = Session & Chr(9) & Chr(9) & "</Item>" & Chr(13) & Chr(10)
Next iCtr

Session = Session & Chr(9) & "</Order>" & Chr(13) & Chr(10)
Session = Session & "</Transaction>" & Chr(13) & Chr(10)

这边应该怎么把session加入XML中
oDOM.save "C:\PTout\12.xml"
Set oDOM = Nothing
End With
...全文
246 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxq19851204 2010-07-14
  • 打赏
  • 举报
回复
好了,老鸟。错误了一行。谢谢你。
Tiger_Zhao 2010-07-14
  • 打赏
  • 举报
回复
PareError 是个对象,下面的属性有错误的位置和描述!
lxq19851204 2010-07-14
  • 打赏
  • 举报
回复
ParseError是-1072896659

session有值。

12.XML是0KB的。

Tiger_Zhao 2010-07-14
  • 打赏
  • 举报
回复
LoadXML 之后查看一下 ParseError 属性,看看是什么错误?
估计 createProcessingInstruction 应该在 LoadXML 之后使用。
lxq19851204 2010-07-14
  • 打赏
  • 举报
回复
晕 早上才有空来看这个帖子。保存12.XML文件,什么都没有.
Tiger_Zhao 2010-07-13
  • 打赏
  • 举报
回复
oDOM.LoadXML Session '<--
oDOM.save "C:\PTout\12.xml"
lxq19851204 2010-07-13
  • 打赏
  • 举报
回复
格式是这样的:
- <Order>
<TransID>10001</TransID>
.
.
-<Item>
<ItemID>1001</ItemID>
.
.
-<condiment>
.
孤独剑_LPZ 2010-07-13
  • 打赏
  • 举报
回复
问题解决了吗
生命密码 2010-07-13
  • 打赏
  • 举报
回复
在你的程序末尾加上
oDOM.Save “您的文件路径”
chinaboyzyq 2010-07-13
  • 打赏
  • 举报
回复
路过,帮顶。
lyserver 2010-07-13
  • 打赏
  • 举报
回复
路过,帮顶。
guyehanxinlei 2010-07-13
  • 打赏
  • 举报
回复
首先要保证XML的结构是正确的.
bcrun 2010-07-13
  • 打赏
  • 举报
回复
使用loadXML 方法吧,参考官方帮助中的这些节选:

loadXML Method
Loads an XML document using the supplied string.

Remarks
Calling load or loadXML on an existing document immediately discards the content of the document. The loadXML() will work only with UTF-16 or UCS-2 encodings.

This member is an extension of the Worldwide Web Consortium (W3C) Document Object Model (DOM).

[Visual Basic]
Visual Basic Syntax
boolValue = oXMLDOMDocument.loadXML(bstrXML)
Parameters
bstrXML
String containing the XML string to load into this XML document object. This string can contain an entire XML document or a well-formed fragment.
Return Value
Boolean. Returns True if the XML load succeeded. Returns False and sets the documentElement property of the DOMDocument to Null if the XML load failed.

Example
The following Microsoft® Visual Basic® example creates a DOMDocument object, and then uses its loadXML method to load the specified XML before displaying it.

Dim xmlDoc As New Msxml2.DOMDocument
xmlDoc.async = False
xmlDoc.loadXML ("<customer><first_name>Joe</first_name><last_name>Smith</last_name></customer>")
MsgBox xmlDoc.xml
king06 2010-07-13
  • 打赏
  • 举报
回复
'        添加一个子节点
Dim aElement As IXMLDOMElement
Set aElement = xmlDoc.createElement("xxxxyyyy") '节点名称
aElement.nodeTypedValue = "ddddddddd" '节点值
xmlDoc.documentElement.childNodes.Item(0).childNodes(0).childNodes(2).childNodes(0).appendChild aElement

保存用.save 方法

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧