显示标签为“dom”的博文。显示所有博文
显示标签为“dom”的博文。显示所有博文

2008年8月14日星期四

使用DOM创建XML

我以前在介绍XML和让别人试着使用DOM时,不只一个人问过我用DOM是否能用来凭空直接生成一个XML文件。
  当然,这是当然可以的了,其次是怎么写程序呢。
  那我就这个问题,专门在这篇文章中用VB和MSXML的COM接口的DOM实现的一个例子来讲一下:
  首先我要说明的是,我用的MSXML的版本是IE5带的,版本号是5.0.2919.3800,微软的早期版本的接口和新的有些不一样,所以自己编程时,应该看一下她的接口和说明。
  如果你对vb和COM不太熟悉,看下面的就可能比较费劲了,但VB比起其他的语言实现,应该是比较简单清楚的了。
  首先声明下面要用的几个对象的变量:
Dim tempdoc As MSXML.DOMDocumentDim tempnode As MSXML.IXMLDOMNode Dim tempelement As MSXML.IXMLDOMElement Dim tempattribute As MSXML.IXMLDOMElement Dim root As MSXML.IXMLDOMElement
  生成一个XML DOMDocument对象
Set tempdoc = New MSXML.DOMDocument
  生成根节点并把它设置为文件的根
Set root = tempdoc.createElement("MyRoot") Set tempdoc.documentElement = root
  生成孩子节点添加到根节点上去,并且为这个节点设置一个属性
Set tempnode = tempdoc.createNode(MSXML.NODE_ELEMENT, "MyNode", "") tempnode.Text = "MyNodeValue" root.appendChild tempnode
  取得元素节点的接口,添加属性
Set tempelement = tempnode tempelement.setAttribute "MyAttribute", "MyAttributeValue"
  写xml文件
Open "MyXMLFile.xml" for output as #1 Print #1, root.XML Close #1
  下面就是上面程序生成的XML文件内容:
   MyNodeValue
  在MSXML中也有非DOM的接口可以用,这就要看大家自己的用法了。我以前在介绍XML和让别人试着使用DOM时,不只一个人问过我用DOM是否能用来凭空直接生成一个XML文件。
  当然,这是当然可以的了,其次是怎么写程序呢。
  那我就这个问题,专门在这篇文章中用VB和MSXML的COM接口的DOM实现的一个例子来讲一下:
  首先我要说明的是,我用的MSXML的版本是IE5带的,版本号是5.0.2919.3800,微软的早期版本的接口和新的有些不一样,所以自己编程时,应该看一下她的接口和说明。
  如果你对vb和COM不太熟悉,看下面的就可能比较费劲了,但VB比起其他的语言实现,应该是比较简单清楚的了。
  首先声明下面要用的几个对象的变量:
Dim tempdoc As MSXML.DOMDocumentDim tempnode As MSXML.IXMLDOMNode Dim tempelement As MSXML.IXMLDOMElement Dim tempattribute As MSXML.IXMLDOMElement Dim root As MSXML.IXMLDOMElement
  生成一个XML DOMDocument对象
Set tempdoc = New MSXML.DOMDocument
  生成根节点并把它设置为文件的根
Set root = tempdoc.createElement("MyRoot") Set tempdoc.documentElement = root
  生成孩子节点添加到根节点上去,并且为这个节点设置一个属性
Set tempnode = tempdoc.createNode(MSXML.NODE_ELEMENT, "MyNode", "") tempnode.Text = "MyNodeValue" root.appendChild tempnode
  取得元素节点的接口,添加属性
Set tempelement = tempnode tempelement.setAttribute "MyAttribute", "MyAttributeValue"
  写xml文件
Open "MyXMLFile.xml" for output as #1 Print #1, root.XML Close #1
  下面就是上面程序生成的XML文件内容:
   MyNodeValue
  在MSXML中也有非DOM的接口可以用,这就要看大家自己的用法了。

2008年8月12日星期二

将XML转换成通用XSL作为DOM物件引入recordset

Dim Rs As ADODB.Recordset
Dim xml As MSXML2.DOMDocument
Dim xsl As MSXML2.DOMDocument
Dim newdom As MSXML2.DOMDocument


Private Sub Command1_Click()
Commd.ShowOpen
If Commd.FileName <> "" Then
txtFile.Text = Commd.FileName
Set xml = New MSXML2.DOMDocument
Set xsl = New MSXML2.DOMDocument
Set newdom = New MSXML2.DOMDocument
Set Rs = New ADODB.Recordset
xml.Load txtFile.Text
xsl.Load App.Path + "\temp.xsl"
xml.transformNodeToObject xsl, newdom
Rs.Open newdom
End If
End Sub

将XML作为DOM物件引入recordset

Dim Rs As ADODB.Recordset
Dim xml As MSXML2.DOMDocument60

Private Sub Command1_Click()
Commd.ShowOpen
If Commd.FileName <> "" Then
txtFile.Text = Commd.FileName
Set xml = New MSXML2.DOMDocument60
Set Rs = New ADODB.Recordset
xml.Load txtFile.Text
End If
End Sub