如何在列表视图中仅将基节点添加为项目,以获取所有信息
本文关键字:项目 获取 信息 添加 节点 列表 视图 | 更新日期: 2023-09-27 18:36:40
我正在尝试读取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>
我只想将"MYSERVER"添加到列表视图中,但正在添加所有信息(主机,用户,密码和端口)。
这就是我正在做的:
private void frmTransmissionManagement_Load(object sender, EventArgs e)
{
XMLDoc.Load(XMLInterfaces);
foreach (XmlNode node in XMLDoc.SelectSingleNode("Servers"))
{
lvConnections.Items.Add(node.InnerText, 0);
}
}
知道吗?
谢谢
我也喜欢XDocument。 不过,这段代码对我有用。 我相信这就是你想要的。
foreach (XmlNode node in XMLDoc.ChildNodes)
{
if (node.Name == "Servers")
{
foreach (XmlNode serverNode in node)
{
string s = serverNode.Name;
MessageBox.Show(s);
}
}
}
使用 System.Xml.Linq
中的XDcoument
,您可以使用如下所示的内容:
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();
}