需要从 Windows Form C# 中非常复杂的 XML 文件中获取值
Need to get values out of a very complex XML file in Windows Form C#
我有一个 dataGridview1,我想向其中添加两列并从 XML 文件填充值。
我需要从 XML 文件中提取值的值具有标签:"Name"、"Status" 和 "IP"。它们在 'item' 个节点内。
我需要将 XML 文件中的名称与 dataGridview 列 (columnName) 匹配,如果匹配,我需要将 "Status" 和 "IP" 放入新添加的dataGridView 中的列。
XML 文件对我来说提取数据似乎太复杂了。我无法使用该数据集,因为它会抛出一个错误,即 'item' 在嵌套的 table 中使用了两次。我尝试使用 Xpath,但无法生成从 XML.
获取数据所需的 Xpath 字符串
欢迎任何帮助。谢谢你。
这是 link 到 XML 文件,我需要从中获取数据:https://net-perm.s3.amazonaws.com/test.xml
XmlDocument doc = new XmlDocument();
doc.LoadXml(CUCMReply);
Int ColumnIndex; //Known value
String ColumnName; //Known value
dataGridView1.Columns.Add(columnName + "RegisterStatus", columnName + "RegisterStatus");
dataGridView1.Columns.Add(columnName + "IP", columnName + "IP");
如果要编写 XPath 表达式,可以使用(local-name()
来规避名称空间问题):
//*[local-name()="item"]/*[local-name()="Name"][contains(.,"columnName")]/following::*[local-name()="Status" and ancestor::*[2][local-name()="CmDevices"] or local-name()="IP"][position()<3]
其中 "columnName"
是您必须匹配的值。
对于每场比赛,它将输出 2 个节点:Status 和 IP。
我有一个 dataGridview1,我想向其中添加两列并从 XML 文件填充值。
我需要从 XML 文件中提取值的值具有标签:"Name"、"Status" 和 "IP"。它们在 'item' 个节点内。
我需要将 XML 文件中的名称与 dataGridview 列 (columnName) 匹配,如果匹配,我需要将 "Status" 和 "IP" 放入新添加的dataGridView 中的列。
XML 文件对我来说提取数据似乎太复杂了。我无法使用该数据集,因为它会抛出一个错误,即 'item' 在嵌套的 table 中使用了两次。我尝试使用 Xpath,但无法生成从 XML.
获取数据所需的 Xpath 字符串欢迎任何帮助。谢谢你。
这是 link 到 XML 文件,我需要从中获取数据:https://net-perm.s3.amazonaws.com/test.xml
XmlDocument doc = new XmlDocument();
doc.LoadXml(CUCMReply);
Int ColumnIndex; //Known value
String ColumnName; //Known value
dataGridView1.Columns.Add(columnName + "RegisterStatus", columnName + "RegisterStatus");
dataGridView1.Columns.Add(columnName + "IP", columnName + "IP");
如果要编写 XPath 表达式,可以使用(local-name()
来规避名称空间问题):
//*[local-name()="item"]/*[local-name()="Name"][contains(.,"columnName")]/following::*[local-name()="Status" and ancestor::*[2][local-name()="CmDevices"] or local-name()="IP"][position()<3]
其中 "columnName"
是您必须匹配的值。
对于每场比赛,它将输出 2 个节点:Status 和 IP。