我正在使用的一个程序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文件进行交互,但是如果其他东西能够更好地工作,我愿意尝试其他方法。
编辑:更改问题标题,以更准确地反映我需要的帮助。
发布于 2015-01-22 20:18:34
谢谢你@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 "file“(实际上只是一个大字符串),并在它中搜索特定的别名。因为我所有的别名值都是唯一的,所以我只需要使用select单个节点。然后哪个返回关联程序(兄弟姐妹?)名字。
再次感谢您的帮助!
https://stackoverflow.com/questions/28077102
复制相似问题