我有一个 xml 响应字符串,我想更改里面的值并记录它。
<xml>
<ns2:abcd>
<password>sample</password>
</ns2:abcd>
我想将密码值更改为加密版本。
我尝试过使用XmlDocument.SelectSingleNode
,但在想有没有比这更好的方法?
顺便说一句,您需要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 反序列化为类型安全的对象模型。从那里,很容易操纵数据。