我在使用XML中的VB6选择特定的子节点时遇到问题 我想使用VB6在xml中选择一个项目 如果我输入txt1 =“cake”和txt2 =“chocolate” 消息框必须回复“找到的项目”,如果我只选择了蛋糕 如果我在txt1上选择冰淇淋,则该项目应该没有找到。
<myxml>
<cake>chocolate</cake>
<cake>Vanilla</cake>
<icecream>Mango</icecream>
<icecream>Strawberry</icecream>
</myxml>
请提前帮助我,谢谢
答案 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