0

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

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

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

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

4

3 回答 3

3

顺便说一句,您需要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);
于 2013-01-23T17:14:42.853 回答
1

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

XmlDocument 或 XDocument 非常适合这项任务。如果您的 XML 非常大,您可能希望使用 XmlReader 研究流式传输(在您的情况下不太必要)。

于 2013-01-23T17:15:19.640 回答
0

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

于 2013-01-23T17:18:48.667 回答