【发布时间】:2014-08-18 17:02:18
【问题描述】:
我正在尝试找到一种方法将数据保存回编码为“iso-8859-7”的 xml 文件。
首先使用
加载 xml public XmlDocument LoadDocument(String x)
{
XmlDocument document = new XmlDocument();
StreamReader stream = new StreamReader(xml, Encoding.GetEncoding("iso-8859-7"));
document.Load(stream);
return (document);
}
在表单控件中加载属性,然后在单击保存按钮时加载
private void savebtn_Click(object sender, EventArgs e)
{
XmlNodeList attributes = commonMethods.LoadDocument(xml).DocumentElement.SelectNodes("//Class[@Name='" + classname + "']/Property[@Id='" + id + "']/attribute::*");
for (int x = 0; x < attributes.Count; )
{
foreach (Control ctr in table1.Controls)
{
if (ctr is TextBox)
{
if (ctr.Text == attributes[x].Value.ToString()) { x++; }
else
{
attributes[x].Value = ctr.Text; commonMethods.SaveDocument(xml);
x++;
}
}
else if (ctr is ComboBox)
{
if (((ComboBox)ctr).Text == attributes[x].Value) { x++; }
else
{
attributes[x].Value = ((ComboBox)ctr).Text; commonMethods.SaveDocument(xml);
x++;
}
}
}
}
}
它将更改保存回 xml 文件。我曾经在不使用 xmldoc.Save("sample.xml) 之类的 xmlwriter 的情况下保存它,但由于文件中的某些字符,我不得不使用不同的方法,例如。
public XmlDocument SaveDocument(String x)
{
XmlDocument document = new XmlDocument();
StreamWriter stream = new StreamWriter(x,false,Encoding.GetEncoding("iso-8859-7"));
document.Save(xml);
return (document);
}
问题是当我编译它时说“xml被另一个进程使用”并且它失败了。
System.IO.IOException
【问题讨论】: