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

我更改了代码以通过值调用实际节点属性,而不是使用 OuterXml.Contains 这似乎已经解决了这个问题。

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

你忘了这个吗?

doc.Save(path);
于 2013-03-22T22:08:42.913 回答