0

我正在使用的程序 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 文件进行交互,但如果其他方法会更好,我愿意尝试其他方法。

编辑:更改了问题标题以更准确地反映我需要帮助的内容。

4

1 回答 1

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“文件”(实际上只是一个大字符串)并在其中搜索特定的别名。由于我所有的别名值都是唯一的,我只需要使用选择单个节点。然后返回关联(兄弟姐妹?)名称。

再次感谢您的帮助!

于 2015-01-22T20:18:34.600 回答