VB6在XML中选择节点中的Text

时间:2014-06-10 10:00:53

标签: xml vb6

我在使用XML中的VB6选择特定的子节点时遇到问题 我想使用VB6在xml中选择一个项目 如果我输入txt1 =“cake”和txt2 =“chocolate” 消息框必须回复“找到的项目”,如果我只选择了蛋糕 如果我在txt1上选择冰淇淋,则该项目应该没有找到。

<myxml>
<cake>chocolate</cake>
<cake>Vanilla</cake>
<icecream>Mango</icecream>
<icecream>Strawberry</icecream>
</myxml>

请提前帮助我,谢谢

1 个答案:

答案 0 :(得分:1)

您应该使用MSXML库(添加对“Microsoft XML,v6.0”的引用)。

了解XPath语法很有用。以您的文件为例,您可能希望创建一个这样的XPath:

/myxml/cake/[text() = 'chocolate']

选择 cake 类型的所有元素,这些元素位于 myxml 下,其内部文本等于 chocolate

以编程方式在VB6中,您将动态构造此XPath字符串。您将实例化DOM对象,并将XML文件加载到其中。如果已经在字符串中包含XML,请使用loadxml()。我正在使用selectSingleNode(),因为它总是返回第一个匹配的节点。如果您想要多个节点,请改用selectNodes()方法。

Private Sub Command_Click()

    Dim oXmlDoc     As MSXML2.DOMDocument
    Dim oXmlNode    As MSXML2.IXMLDOMNode

    Set oXmlDoc = New MSXML2.DOMDocument
    oXmlDoc.Load "D:\Food.xml"
    Set oXmlNode = oXmlDoc.selectSingleNode("/myxml/" & txt1.Text & "[text() = '" & txt2.Text & "']")

End Sub