所以,我开始了这个项目,我甚至不知道如何搜索它。
我有一个非常简单的XML文件:
version="1.0" encoding="utf-8" ?>
<AI>
<ai>
<id>1</id>
<name>NAME</name>
...
</ai>
</AI>
我想搜索"name“元素,得到结果的"id”元素。我试过很多方法,大多数都写了些奇怪的东西。
发布于 2015-03-14 11:05:11
我对您的示例进行了扩展,使其包含更多的<ai>
标记,因此结果更加清晰。
因此,首先我将xml转换为XElement
。如果您使用的是文件,则可以使用XDocument
解析整个文件。接下来,我转到<ai>
节点并将其内容提取为匿名类型。然后,当你提取出内容后,使用简单的LINQ表达式就可以很容易地搜索到它。在下面的示例中,我返回id
,其中name
等于"NAME"
class Program
{
// A sample xml string.
static string xml = @"<?xml version=""1.0"" encoding=""utf-8"" ?>
<AI>
<ai>
<id>1</id>
<name>NAME</name>
</ai>
<ai>
<id>2</id>
<name>NAME2</name>
</ai>
<ai>
<id>3</id>
<name>NAME3</name>
</ai>
</AI>";
static void Main(string[] args)
{
// Read the string.
XElement xelem = XElement.Parse(xml);
var results = xelem.Descendants("ai") // Get all <ai> nodes.
.Select(x =>
new
{
// Get values from <id> and <name>.
// Use anonymous types to store the results.
id = x.Descendants("id").First().Value,
name = x.Descendants("name").First().Value,
});
// Filter out required result.
var filtered = results.Where(x => x.name == "NAME").First().id;
}
}
https://stackoverflow.com/questions/29043143
复制相似问题