我试图读取XML并让基本节点将其添加到列表视图中,但是获取这些节点的所有信息并将这些信息添加为项目。
这是我的XML:
<?xml version="1.0" encoding="utf-8"?>
<Servers>
<MYSERVER>
<Host>xxx.xxx.xxx.xxx</Host>
<User>MyUser</User>
<Password>MyPassword</Password>
<Port>25</Port>
</MYSERVER>
</Servers>
我只想添加&#34; MYSERVER&#34;进入列表视图但添加了所有信息(主机,用户,密码和端口)。
这就是我正在做的事情:
private void frmTransmissionManagement_Load(object sender, EventArgs e)
{
XMLDoc.Load(XMLInterfaces);
foreach (XmlNode node in XMLDoc.SelectSingleNode("Servers"))
{
lvConnections.Items.Add(node.InnerText, 0);
}
}
有什么想法吗?
由于
答案 0 :(得分:2)
我也喜欢XDocument。不过,这段代码对我有用。我相信这就是你想要的。
foreach (XmlNode node in XMLDoc.ChildNodes)
{
if (node.Name == "Servers")
{
foreach (XmlNode serverNode in node)
{
string s = serverNode.Name;
MessageBox.Show(s);
}
}
}
答案 1 :(得分:0)
使用XDcoument
中的System.Xml.Linq
,您可以使用以下内容:
doc.Element("Servers").Elements().Select(x => x.Name);
这只返回字符串(实际上在这种情况下它是一个IEnumerable
,只有一个值):“MYSERVER”。
我写的快速示例程序演示了:
static void Main(string[] args)
{
var doc = System.Xml.Linq.XDocument.Parse("<?xml version=\"1.0\" encoding=\"utf-8\"?> <Servers> <MYSERVER> <Host>xxx.xxx.xxx.xxx</Host> <User>MyUser</User> <Password>MyPassword</Password> <Port>25</Port> </MYSERVER> </Servers>");
var servers = doc.Element("Servers").Elements().Select(x => x.Name);
foreach(var s in servers)
{
Console.WriteLine(s);
}
Console.ReadLine();
}