我有以下xml文件
<categories>
<category>
<id>1</id>
<name>Computer</name>
<description>Information tech.</description>
<active>True</active>
</category>
<category>
<id>2</id>
<name>Cate1</name>
<description>MMukh</description>
<active>True</active>
</category>
</categories>
我需要通过id值指定一个类别数据并将它们存储在文本框中。 请你帮助我好吗。 感谢。
答案 0 :(得分:2)
您可以使用LINQ to XML之类的
XDocument xDoc = XDocument.Load("test.XML");
var item = xDoc.Descendants("category")
.FirstOrDefault(r => r.Element("id").Value == "1");
if(item == null)
return;
string Name = item.Element("name").Value;
string Decription = item.Element("description").Value;
string active = item.Element("active").Value;
您可以根据需要将结果分配给TextBoxes。
答案 1 :(得分:1)
如何使用Linq To Xml并将元素转换为Dictionary<string,string>
?
var xDoc = XDocument.Parse(xml);
int id=1;
var dict = xDoc.XPathSelectElement("//category[id=" + id + "]")
.Elements()
.ToDictionary(e=>e.Name.LocalName , e=>(string)e);
Console.WriteLine(dict["description"]);
答案 2 :(得分:0)
只需在对象中反序列化给定的XML并将LINQ应用于对象。 MSDN
答案 3 :(得分:0)
首先使用XDocument
加载它XDocument test = XDocument.Load("test.xml");
然后,
var qry = (from item in test.Descendants("category")
where item.Element("id").Value == 1
select new
{
Name = (string)test.Element("name").Value
Description = (string)test.Element("description").Value
Active = (string)test.Element("active").Value
}).FirstOrDefault();
这创建了一个匿名类型,您现在可以显示如下数据:
if (qry != null) {
Console.WriteLine(qry.Name);
Console.WriteLine(qry.Description);
Console.WriteLine(qry.Active);
}
答案 4 :(得分:0)
var xml = XDocument.Parse(xmlDataString);
var categoryElement = xml.Root
.Elements("category")
.FirstOrDefault(e => (string)e.Element("id") == "1");