提问人:Jimmy Boy 提问时间:3/19/2023 更新时间:3/19/2023 访问量:68
在 C 中根据父值选择 Xml 值#
Select Xml value based on parent value in C#
问:
我正在尝试通过匹配之前的 id 标签的值来选择 xml 值
<unit>
<id>1</id>
<name>foo</name>
</unit>
<unit>
<id>2</id>
<name>bar</name>
</unit>
鉴于我的 id 在上述场景中是 2,我想获取值“bar”。
任何建议或图书馆建议都是值得赞赏的。
答:
2赞
Jon Skeet
3/19/2023
#1
为此,我将使用 LINQ to XML:
- 找到您想要的元素
- 使用其属性访问
Parent
unit
- 使用该方法获取
Element
name
示例代码:
using System.Xml.Linq;
XDocument doc = XDocument.Load("test.xml");
var id = doc.Descendants("id").Where(id => id.Value == "2").SingleOrDefault();
if (id is null)
{
Console.WriteLine("No such ID");
return;
}
else
{
var unit = id.Parent;
var nameElement = unit?.Element("name");
if (nameElement is null)
{
Console.WriteLine("No name element");
return;
}
string name = nameElement.Value;
Console.WriteLine($"Name: {name}");
}
0赞
Charlieface
3/19/2023
#2
在将文件加载到 .XDocument
XDocument doc = XDocument.Load("test.xml");
// alternatively XDocument.Parse
var name = doc.Elements("unit")
.FirstOrDefault(unit => unit.Element("id")?.Value == "2")
.Element("name")?.Value;
上一个:更新或追加子 XML 文件
下一个:从文本框输入接收输入
评论