1

何らかの理由でxmlファイルのノードに設定を書き込むことについて簡単な質問がありますが、他のすべての設定は保存されますが、これと保存しようとしている値は(ListingRid = 1 +)、(PictureCount = 1 +)です。私のコードでは、textBoxQuery.Textに(ListingRid = 1 +)、(PictureCount = 1 +)が含まれています

XMLの例

<setting name="SearchQuery" serializeAs="String">
<value></value>
</setting>

そして、これが私が呼び出すコードです。値に無効な文字が含まれている可能性があるかどうかを誰かに教えてもらえますか?それが設定が保存されない理由ですか?

XmlDocument doc = new XmlDocument();
doc.Load(path);
foreach (XmlNode node in doc.SelectNodes("//setting"))
{
    if (node.OuterXml.Contains("SearchQuery"))
{
    node.LastChild.InnerText = textBoxQuery.Text;
}
doc.Save(path); //I have this in there at the end.
4

3 に答える 3

0

このコンテキストで無効なtextBoxQuery.Textの値はありません

node.LastChild.InnerText = textBoxQuery.Text

InnerTextは、設定時に値をエスケープするためです。InnerXmlこれがとの違いですInnerText

于 2013-03-22T21:59:26.853 に答える
0

これを忘れましたか?

doc.Save(path);
于 2013-03-22T22:08:42.913 に答える
0

OuterXmlを使用する代わりに、値によって実際のノード属性を呼び出すようにコードを変更しました。これにより、問題が修正されたようです。

            if (node.Attributes["name"].Value == ("SearchQuery"))
             node.LastChild.Innertext = textBoxQuery.Text;
于 2013-03-25T15:15:49.963 に答える