如何动态更改 XML 字符串值

本文关键字:XML 字符串 何动态 动态 | 更新日期: 2023-09-27 17:55:20

我有一个xml响应字符串,我想更改里面的值并记录它。

<xml>
<ns2:abcd>
<password>sample</password>
</ns2:abcd>

我想将密码值更改为加密版本。

我试过使用XmlDocument.SelectSingleNode但是在想有比这更好的方法吗?

如何动态更改 XML 字符串值

顺便说一句,你需要声明ns2命名空间,否则你的xml将无效。添加命名空间定义后,可以使用 Linq to XML 解析和修改 xml:

XDocument xdoc = XDocument.Parse(xml);
var passwordElement = xdoc.XPathSelectElement("//password");
passwordElement.Value = Encrypt((string)passwordElement);
xdoc.Save(path_to_xml);

不 - 没有比使用正确的XML类更好的方法了。

XmlDocument 或 XDocument 非常适合此任务。如果您的 XML 非常大,您可能需要研究使用 XmlReader 进行流式处理(在您的情况下不太可能是必需的)。

你也可以考虑研究xsd.exe。使用 xsd.exe,可以将 xml 反序列化为类型安全的对象模型。从那里,很容易操作数据。