需要在Windows Form C#中从一个非常复杂的XML文件中获取值。

问题描述 投票:0回答:1

我有一个dataGridview1,我想在其中添加两列并从一个XML文件中填充值。

我需要从XML文件中提取的值有标签。"Name", "Status" 和 "IP" 。它们位于 "项目 "节点内。

我需要将XML文件中的名称匹配到一个dataGridview列(columnName)中,如果匹配,我需要将 "状态 "和 "IP",放到dataGridView中新添加的列中。

XML文件对我来说提取数据似乎很复杂。我不能使用数据集,因为它抛出一个错误,"项目 "在嵌套表中使用了两次。我试着使用Xpath,但我不能从XML中获取数据所需的Xpath字符串。

欢迎任何帮助。谢谢你的帮助。

这里是我需要数据的XML文件的链接。https:/net-perm.s3.amazonaws.comtest.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");            

            
c# xpath xmldocument
1个回答
0
投票

如果你想写一个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" 是你要匹配的值,每匹配一次,它将输出两个节点。状态和IP。

© www.soinside.com 2019 - 2024. All rights reserved.