我试图在.Net应用程序中使用LINQ来过滤掉我保存到数据库的XML中的个人数据。
示例XML
textView.setText(colorString(ContextCompat.getColor(context, R.color.colorPrimaryLink),
fullString, highlightedWord1, highlightedWord2));
我的工作:
<?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>
但是,这会过滤所有对象的值。
我要做的只是过滤特定对象的值,例如,Key等于&#34;密码&#34;
有办法做到这一点吗?
答案 0 :(得分:4)
您可以执行以下操作:
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
节点的值。