在winform中form中的文本框中修改都取的XML文件,修改后,保存时判断修改后的XML是否符合XML基本的格式规范,最后一步的判断如何实现呢?
namespace ManageXMLFile
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
string path;
private void Form1_Load(object sender, EventArgs e)
{
path = Path.GetDirectoryName(this.GetType().Assembly.Location) + "\Config";
DirectoryInfo directories = Directory.CreateDirectory(path);
FileInfo[] files=directories.GetFiles();
lbFileNames.Items.AddRange(files);
if (files.Length > 0)
{
lbFileNames.SetSelected(0, true);
}
}
string selectedFile;
private void lbFileNames_SelectedIndexChanged(object sender, EventArgs e)
{
selectedFile = lbFileNames.SelectedItem + "";
txtXMLContext.Visible = false;
webBrowserXMLContext.Visible = true;
webBrowserXMLContext.Url = new Uri(path + "\" + selectedFile);
btnUpdate.Text = "修改";
}
private void btnUpdate_Click(object sender, EventArgs e)
{
Button btn=(Button)sender;
if (btn.Text == "修改")
{
btn.Text = "保存";
txtXMLContext.Visible = true;
webBrowserXMLContext.Visible = false;
string selectedFileText = File.ReadAllText(path + "\\" + selectedFile);
txtpath.Text = path + "\\" + selectedFile;
txtXMLContext.Text = selectedFileText;
}
else
{
btn.Text = "修改";
txtXMLContext.Visible = false;
webBrowserXMLContext.Visible = true;
string saveXMLContext = txtXMLContext.Text;
File.WriteAllText(path + "\\" + selectedFile, saveXMLContext);
webBrowserXMLContext.Url = new Uri(path + "\\" + selectedFile);
}
}
}
}
该回答引用ChatGPT
可以使用System.Xml.XmlDocument类来解析XML并验证其格式是否符合基本规范。具体实现可以将文本框中的XML内容加载到XmlDocument对象中,然后使用XmlDocument对象的LoadXml()方法加载XML并捕获XmlException异常,如果捕获到异常则说明XML格式不符合规范。例如:
try
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(txtXMLContext.Text);
// 如果没有抛出异常,则说明XML格式符合规范
// 可以在此处继续保存XML文件
}
catch (XmlException ex)
{
// 捕获XmlException异常,说明XML格式不符合规范
MessageBox.Show(ex.Message);
}