gpt4 book ai didi

c# - 我有两个组合框和xml文件,我想从xml中填充组合框1中的服务器名称,并根据服务器名称填充第二个组合框

转载 作者:行者123 更新时间:2023-12-03 10:44:27 25 4
gpt4 key购买 nike

XML:

<?xml version="1.0" encoding="utf-8"?>

<servers>
<server>s2
<database>db1</database>
<database>db2</database>

</server>

<server>s3
<database>db3</database>
<database>db4</database>

</server>

</servers>

I want to get database based on server name & return as a list of string type.



看法 :

This function will take server name as a parameter from first combo box and based on the will filter database and populate second combobox


public List<string> GetDatabases(string serv)
{
var item = from items in xdoc.Descendants("database")
where (string)items.Element("server") == serv
select items.Elements("database").ToList();
foreach (var items in item)
{
lstDBName.Add(items.ToString());
}
return lstDBName;

}

最佳答案

您发布的XML无效。如果使用XML validator进行测试,则会看到此错误:

Errors in the XML document: 
1: 1 Content is not allowed in prolog.

您可以通过添加如下属性来轻松修复它:存储服务器名称,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<servers>
<server name="s2">
<database>db1</database>
<database>db2</database>
</server>
<server name="s3">
<database>db3</database>
<database>db4</database>
</server>
</servers>

您可以像这样修改(并简化一点)您的代码:
public List<string> GetDatabases(string serv)
{
XDocument xdoc = XDocument.Load("XMLFile1.xml");
var lstDBName = (from items in xdoc.Descendants("server")
where items.Attribute("name").Value == serv
from item in items.Elements("database")
select item.Value)
.ToList();
return lstDBName;
}

我从一个名为XMLFile1.xml的文件中读取了方法内部的XML,但是可以在读取XML的同时更改该位。

此代码示例将按预期返回两个字符串的列表,其值分别为“db1”和“db2”

关于c# - 我有两个组合框和xml文件,我想从xml中填充组合框1中的服务器名称,并根据服务器名称填充第二个组合框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33647682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com