如何在程序中利用TXMLDocument生成XML?分数增加中...

zhengsb 2002-01-23 11:38:36
...全文
189 12 打赏 收藏 举报
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Tosan 2002-01-24
对,☆浪人☆说的没错,微软的msxml4.0在VB中就是一个组件,new就可以了.生成了Document以后,就可以读写增加修改酸除node了.我做了一个解析DOM书的例子,请看.
Private Sub CmdOpenXml_Click()
Dim LsHour As String
Dim LsMin As String
Dim LsSec As String
Dim TimeB As String
Dim TimeE As String
Dim msTime As String
Dim lTime As SystemTime
Dim bM, eM As Integer
Dim bMs, eMs As Integer
Dim bMm, eMm, costTime As Integer
Dim Rslt As Variant
Dim Node As IXMLDOMNode 'ノードを取得
Dim Rootdoc As DOMDocument 'ルートノードをゲット

On Err GoTo Eh
GetLocalTime lTime
'データ読み込む開始時刻を取得
bM = lTime.wMinute
bMs = lTime.wMilliseconds
bMm = lTime.wSecond
LsHour = CStr(lTime.wHour)
LsMin = CStr(lTime.wMinute)
LsSec = CStr(lTime.wSecond)
msTime = CStr(lTime.wMilliseconds)
TimeB = LsHour & ":" & LsMin & ":" & LsSec & " : " & msTime
LblXmlB.Caption = "開始時刻:" + TimeB

'XMLファイルのデータを読み込む、フィールドまで分ける
LstTree.Clear
Set Rootdoc = New DOMDocument
Rootdoc.async = False '非同期処理を行わない
Rootdoc.validateOnParse = False '文書型定義を検証しない
Rootdoc.preserveWhiteSpace = False 'WhiteSpaceを含めない
If (Rootdoc.Load(XMLFILE)) Then
Set Node = Rootdoc.childNodes(1)
Rslt = getNodeData(Node)
End If

GetLocalTime lTime
'データ読み込む終了時刻を取得
eM = lTime.wMinute
eMs = lTime.wMilliseconds
eMm = lTime.wSecond
LsHour = CStr(lTime.wHour)
LsMin = CStr(lTime.wMinute)
LsSec = CStr(lTime.wSecond)
msTime = CStr(lTime.wMilliseconds)
TimeE = LsHour & ":" & LsMin & ":" & LsSec & " : " & msTime
LblXmlE.Caption = "終了時刻:" + TimeE
costTime = ((eM - bM) * 60 + eMm - bMm) * 1000 + eMs - bMs
Label1.Caption = CStr(costTime) + "ミリ秒"
Exit Sub
Eh:
'XMLファイルオープン失敗
MsgBox Err.Description

End Sub

Private Function getNodeData(ByVal nodeData As IXMLDOMNode) As Variant
Dim rt As Variant
Dim i, j, num, chnt As Integer
Dim atrrName, atrrValue, RecordData As String
Dim NodeMap As IXMLDOMNamedNodeMap 'ノードの属性を取得

RecordData = nodeData.nodeName
'当ノートの属性を判断、つまり、要素の属性が有否を判断する
Set NodeMap = nodeData.Attributes
num = NodeMap.Length
If num > 0 Then
For i = 0 To num - 1
atrrName = NodeMap.Item(i).nodeName '要素の属性の名前
atrrValue = NodeMap.Item(i).nodeValue '要素の属性の値
RecordData = RecordData + atrrName & ":" & atrrValue
Next i
LstTree.AddItem (RecordData)
'当ノートは子ノートがあれば、コールセルフ
If (nodeData.hasChildNodes) Then
chnt = nodeData.childNodes.Length
For j = 0 To chnt - 1
rt = getNodeData(nodeData.childNodes(j))
Next j
Else
'当ノートは子ノートが無し、これはDOMツリーの最後の階層
Exit Function
End If
End If
End Function
  • 打赏
  • 举报
回复
kevin_gao 2002-01-23
生成xml?
当文本文件生成好了,然后用TXmldocument.loadfromfile将它load进来。
  • 打赏
  • 举报
回复
VSaber 2002-01-23
我给你留个qq: 3199654(我通常隐身)
如果你用这个有什么不懂,我们互相讨论嘛,
这段时间我常用这套sdk,还算懂一点吧!:)
  • 打赏
  • 举报
回复
VSaber 2002-01-23
没法详细说呀,你到ms下载一个用一下就明白了,反正sdk带了帮助嘛!
这是一套com组件,比较简单把,而且刚出了正式版,还有中文4.0正式版,赶快下载了!:)
  • 打赏
  • 举报
回复
zhengsb 2002-01-23
to VSaber:能否详细说说?
  • 打赏
  • 举报
回复
VSaber 2002-01-23
不要用TXMLDocument,直接用msxml4.0 sdk,TXMLDocument很多功能不能实现!
而msxml4.0很好用!
  • 打赏
  • 举报
回复
zhengsb 2002-01-23
????
  • 打赏
  • 举报
回复
zhengsb 2002-01-23
各位能给个例子吗?
zhengshb@yeah.net
  • 打赏
  • 举报
回复
iBear 2002-01-23
看帮助!!!
  • 打赏
  • 举报
回复
chenjiong 2002-01-23
如果是想把数据库中的内容生成XML的话,倒也不一定得用TXMLDocument的。
如果你一定是要用TXMLDocument,那我UP。
  • 打赏
  • 举报
回复
wwwwwwww 2002-01-23
TXMLDocument
TXMLDocument is a component used for programming XML documents. It takes car
e of getting an instance of a IDOMDocument interface and loading and saving
xml files. After setting the filename property and setting Active to true, u
se the DOMDocument property to access the contents of the file.
  • 打赏
  • 举报
回复
zhengsb 2002-01-23
thanks
  • 打赏
  • 举报
回复
发帖
Delphi
加入

5091

社区成员

Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
申请成为版主
帖子事件
创建了帖子
2002-01-23 11:38
社区公告
暂无公告