我正在尝试使用XML.XMLNode提取子节点,因为我正在使用以下代码来获取我的值信息。
Dim objXML As New Xml.XmlDocument
Dim colNode As Xml.XmlNode
Dim rowNode As Xml.XmlNode
Dim RespNode As Xml.XmlNode
For Each RespNode In objXML.ChildNodes
For Each rowNode In RespNode.ChildNodes
For Each colNode In rowNode.ChildNodes
testStr = colNode.Attributes.GetNamedItem("name").Value
Next
Next
Next
如何通过修改当前使用的代码来获取fieldPasswordValue:1234和fieldPasswordValue:4567?
XML:
<resp status="ok">
<data id="41170">
<field name="abc">xyz</field>
<composite>
<data id="51253">
<field name="fieldPasswordValue"/>1234</field>
</data>
<data id="52356">
<field name="fieldPasswordValue"/>4567</field>
</data>
</composite>
</data>
</resp>
答案 0 :(得分:1)
首先,你的xml是错误的。您正在通过执行
两次关闭该字段<field name="fieldPasswordValue"/>1234</field>
应该是
<field name="fieldPasswordValue">1234</field>
要获取该值,可以使用xpath搜索xml。
For Each node As Xml.XmlNode In objXML.SelectNodes("//field[@name='fieldPasswordValue']")
Console.WriteLine(node.InnerText)
Next
我建议你read up on the syntax of xpath准确地得到你正在寻找的东西。您甚至可以删除样本中的3个for循环。