使用Linq过滤掉特定的元素内容

时间:2017-08-30 14:58:11

标签: c# .net xml linq

我试图在.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;

有办法做到这一点吗?

1 个答案:

答案 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节点的值。