删除以下元素的元素值

时间:2014-08-05 22:30:05

标签: c# linq-to-xml

我想从以下XDocument结构中删除特定值:

<plist version="1.0">
<dict>
<key>Main</key>
<array>
    <dict>
        <key>Password</key>
        <string>*********</string>
        <key>Username</key>
        <string>testuser</string>
    </dict>
</array>
<key>Profile</key>
<string>test profile 1</string>
</dict>
</plist>

假设我想删除与key = Password关联的字符串值,我该怎么做?

1 个答案:

答案 0 :(得分:2)

您可以使用XPath检索密码元素并重置其内容:

var passwords = document.XPathSelectElements("//key[text()='Password']/following-sibling::string[1]");
foreach(XNode elem in passwords)
{
  elem.SetValue(string.Empty);
}

当然,接下来你必须保存文件。

它的作用是识别密码键元素,然后识别下一个兄弟。这假定订单始终与示例中的相同:第一个键,然后是字符串。

你可以check it here, online

当然,还有this solution with Linq to XML