在 XML 文档中查找同级属性
Find Sibling Attribute in XML document
我正在使用的程序 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 我可以打开文档,但我不知道如何通过它的别名然后 return 关联项目名称来查找索引。老实说,我什至找不到像这个程序那样将两个元素推到一起的例子,所以我觉得我只是在尝试查找信息时在黑暗中随机刺入。
目前我正在使用 xPath 与 XML 文件交互,但如果其他方法效果更好,我愿意尝试其他方法。
编辑:更改了问题标题以更准确地反映我需要帮助的内容。
谢谢@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"(实际上只是一个大字符串)并在其中搜索特定的别名。由于我所有的 Alias 值都是唯一的,因此我只需要使用 select 单个节点。然后 returns 同事(兄弟姐妹?)姓名。
再次感谢您的协助!
我正在使用的程序 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 我可以打开文档,但我不知道如何通过它的别名然后 return 关联项目名称来查找索引。老实说,我什至找不到像这个程序那样将两个元素推到一起的例子,所以我觉得我只是在尝试查找信息时在黑暗中随机刺入。
目前我正在使用 xPath 与 XML 文件交互,但如果其他方法效果更好,我愿意尝试其他方法。
编辑:更改了问题标题以更准确地反映我需要帮助的内容。
谢谢@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"(实际上只是一个大字符串)并在其中搜索特定的别名。由于我所有的 Alias 值都是唯一的,因此我只需要使用 select 单个节点。然后 returns 同事(兄弟姐妹?)姓名。
再次感谢您的协助!