0

xml 応答文字列があり、内部の値を変更してログに記録したいと考えています。

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

パスワード値を暗号化版に変更したい。

私は使ってみXmlDocument.SelectSingleNodeましたが、これよりも良い方法があると考えていましたか?

4

3 に答える 3

3

ns2ところで、名前空間を宣言する必要があります。そうしないと、xml が無効になります。名前空間定義を追加した後、Linq を使用して 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 に答える