我使用的程序WonderWare创建了以下XML文档
<ItemsList>
<Item Name="31" Alias="PMP1_ANY_FAULT"/>
<Item Name="29" Alias="PMP1_DEVIATION"/>
<Item Name="27" Alias="PMP1_DISCREPANCY"/>
<Item Name="25" Alias="PMP1_EQUIP_SC_BAD"/>
<Item Name="402019 F" Alias="PMP1_EQUIP_SP"/>
</ItemsList>
使用VB.Net我可以打开文档,但我无法弄清楚如何通过它的别名查找索引,然后返回关联项目名称。老实说,我甚至无法找到一个例子,其中两个元素按照这个程序的方式被推到一起,所以我觉得我在尝试查找信息时只是在黑暗中随机刺伤。
目前我正在使用xPath与XML文件进行交互,但如果其他内容更好用,我还是愿意尝试别的。
修改:更改了问题标题,以更准确地反映出我需要帮助的内容。
答案 0 :(得分:1)
感谢@Crowcode和@Phrogz指出我正确的方向。这是最终的代码
dim v as string;
dim ItemDBXMLString as string;
dim doc as System.Xml.XmlDocument;
dim SR as System.IO.StringReader;
dim TR as System.Xml.XmlTextReader;
dim nodeList as System.Xml.XmlNodeList;
dim root as System.Xml.XmlNode;
dim Node as System.Xml.XmlNode;
dim x as integer;
ItemDBXMLString = MB_TCPIP.PLC_001.AliasDatabase;
doc = new System.Xml.XmlDocument;
SR = new System.IO.StringReader(ItemDBXMLString);
TR = new System.Xml.XmlTextReader(SR);
doc.Load(TR);
root = doc.DocumentElement;
Address = root.SelectSingleNode("/ItemsList/Item[@Alias='PMP1_SI_VALUE']/@Name").InnerText;
我必须明确使用System.XML,因为WonderWare不允许我使用导入。除此之外,我正在使用XML“文件”(实际上只是一个大字符串)并在其中搜索特定的别名。由于我的所有Alias值都是唯一的,因此我只需要使用select single节点。然后返回员工(兄弟姐妹?)姓名。
再次感谢您的帮助!