初学XML 我用 vb6 引用的xml3.0 DOMDocument 类 要实现以下操作如App.Path & "\1.xml"中为- <NODE>
<NODE key="123"/>
...(数据也许会有很多)
...
</NODE>我要在末尾增加一条为
- <NODE>
<NODE key="123"/>
...(数据也许会有很多)
...
<NODE key="4567"/>
</NODE>中间数据也许会有很多 如果每次操作都遍历结点可能会用很多时间 降低效率
那么我该如何写这段代码呢?
谢谢各位高手不用再贴文章链接了 xml的帖子我几乎都搜索过
<NODE key="123"/>
...(数据也许会有很多)
...
</NODE>我要在末尾增加一条为
- <NODE>
<NODE key="123"/>
...(数据也许会有很多)
...
<NODE key="4567"/>
</NODE>中间数据也许会有很多 如果每次操作都遍历结点可能会用很多时间 降低效率
那么我该如何写这段代码呢?
谢谢各位高手不用再贴文章链接了 xml的帖子我几乎都搜索过
Option ExplicitPrivate xmlDoc As DOMDocument30
Private Const strNODE = "NODE"Private Sub Command1_Click()Dim strFileName As String
Dim Ele As IXMLDOMElement strFileName = App.Path & "\1.xml"
Set xmlDoc = New DOMDocument30
xmlDoc.Load strFileName
Set Ele = xmlDoc.selectSingleNode("NODE")
If Ele Is Nothing Then
Set Ele = xmlDoc.createElement(strNODE)
End If
Ele.setAttribute "name", "4567"
xmlDoc.appendChild(xmlDoc.createElement(strNODE)).appendChild Ele
xmlDoc.save strFileName
End Sub这样怎么总是结点不对呢?
Private Const strNODE = "NODE"Private Sub Command1_Click() Dim strFileName As String
Dim Ele As IXMLDOMElement strFileName = App.Path & "\1.xml"
Set xmlDoc = New DOMDocument30
xmlDoc.Load strFileName
Set Ele = xmlDoc.selectSingleNode("NODE")
If Ele Is Nothing Then
Set Ele = xmlDoc.createElement(strNODE)
End If
Ele.setAttribute "name", "4567"
'''xmlDoc.appendChild(xmlDoc.createElement(strNODE)).appendChild Ele
Dim ParentNode As IXMLDOMNode
Set ParentNode = xmlDoc.selectSingleNode("NODE")
ParentNode.appendChild Ele
xmlDoc.Save strFileName
End Sub
我写的缺只能生成
- <NODE name="4567">
<NODE name="4567" />
</NODE>
代码是
Option Explicit
Private xmlDoc As DOMDocument30
Private Const strNODE = "NODE"
Private Sub Command1_Click()
Dim strFileName As String
Dim Ele As IXMLDOMElement
strFileName = App.Path & "\1.xml"
Set xmlDoc = New DOMDocument30
xmlDoc.Load strFileName
Set Ele = xmlDoc.selectSingleNode("NODE")
If Ele Is Nothing Then
Set Ele = xmlDoc.createElement(strNODE)
End If
Ele.setAttribute "name", "4567"
xmlDoc.save strFileName
End Sub
- <NODE>
<NODE name="4567" />
<NODE name="4567" />
</NODE>
现在只能
- <NODE name="4567">
<NODE name="4567" />
</NODE>
- <NODE>
- <NODE>
Private Const strNODE = "NODE"
Private Sub Command1_Click()
Dim strFileName As String
Dim Ele As IXMLDOMElement
strFileName = App.Path & "\1.xml"
Set xmlDoc = New DOMDocument30
xmlDoc.Load strFileName
Set Ele = xmlDoc.selectSingleNode("NODE")
If Ele Is Nothing Then
Set Ele = xmlDoc.createElement(strNODE)
Ele.setAttribute "name", "4567"
xmlDoc.appendChild(xmlDoc.createElement(strNODE)).appendChild Ele
Else
Dim NewNode As IXMLDOMNode
Set NewNode = xmlDoc.selectSingleNode("NODE")
Ele.setAttribute "name", "4567"
End If
xmlDoc.save strFileName
End Sub
问题不是能不能找到,是找到后把父结点替换了..... 应该在根下建立新的
- <NODE>
<NODE name="4567" />
<NODE name="4567" />
</NODE>
现在只能
- <NODE name="4567">
<NODE name="4567" />
</NODE>
哪位懂XML的帮我一下 谢谢
Private Const strNODE = "NODE"Private Sub Command1_Click() Dim strFileName As String
Dim Ele As IXMLDOMElement
Dim NewNode As IXMLDOMNode
Dim NewNodeAttr As IXMLDOMNode
Set xmlDoc = New DOMDocument30
strFileName = App.Path & "\1.xml"
xmlDoc.Load strFileName
Set Ele = xmlDoc.selectSingleNode("NODE")
If Ele Is Nothing Then
Set Ele = xmlDoc.createElement(strNODE)
xmlDoc.appendChild Ele
Else
Set NewNode = xmlDoc.createNode(NODE_ELEMENT, strNODE, "")
Set NewNodeAttr = xmlDoc.createAttribute("name")
NewNodeAttr.Text = "4567"
NewNode.Attributes.setNamedItem NewNodeAttr
xmlDoc.documentElement.appendChild NewNode
End If
xmlDoc.Save strFileNameEnd Sub
ELE已经在已选择的节点上,这样就变成在已选节点下创建了。