gpt4 book ai didi

c# - 使用Linq过滤掉特定元素内容

转载 作者:数据小太阳 更新时间:2023-10-29 02:25:37 25 4
gpt4 key购买 nike

我正在尝试在 .Net 应用程序中使用 LINQ 从我保存到数据库的 XML 中过滤掉个人数据。

示例 XML

<?xml version="1.0" encoding="UTF-8"?>
<body>
<Details>
<Id>1</Id>
<objectList>
<object>
<Key>Account</Key>
<Value>12345</Value>
</object>
<object>
<Key>Password</Key>
<Value>abcd</Value>
</object>
</objectList>
</Details>
</Body>

我的工作:

var xmlFile = File.ReadAllText("Test.xml");
var xDoc = XDocument.Parse(xmlFile);
var newXDoc = xDoc.Descendants().Where(e => e.Name.LocalName == "Value").ToList().ForEach(e => e.Value = "FILTERED");

但是,这过滤了你为所有对象的值。

我要做的是仅过滤特定对象的值,例如,其中 Key 等于“密码”

有办法吗?

最佳答案

您可以执行以下操作:

var objectValue="Password";
var result= xDoc.Descendants("object").Where(e => e.Element("Key").Value==objectValue);
foreach(var e in result)
{
e.Element("Value").Value = "FILTERED";
}

首先根据您要应用的条件过滤对象,然后更改 Value 节点的值,如上所示。

关于c# - 使用Linq过滤掉特定元素内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45963738/

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