doc.LoadXml("<myxml></myxml>");
XmlNode root = doc.SelectSingleNode("myxml");
foreach (TreeNode tn in treeView1.Nodes)
{
XmlElement Test = doc.CreateElement(tn.Name);
root.AppendChild(Test);
if (tn.Nodes != null)
{
ChildNods(tn, Test);
}
}
doc.Save("myxml.xml");到XmlElement Test = doc.CreateElement(tn.Name);运行不了。
谁能告诉我为什么啊?“System.ArgumentException”类型的未经处理的异常出现在 System.Xml.dll 中。其他信息: 元素或特性的本地名称不能为空或空字符串。
C# 窗口应用程序设计 使用vs2010
XmlNode root = doc.SelectSingleNode("myxml");
foreach (TreeNode tn in treeView1.Nodes)
{
XmlElement Test = doc.CreateElement(tn.Name);
root.AppendChild(Test);
if (tn.Nodes != null)
{
ChildNods(tn, Test);
}
}
doc.Save("myxml.xml");到XmlElement Test = doc.CreateElement(tn.Name);运行不了。
谁能告诉我为什么啊?“System.ArgumentException”类型的未经处理的异常出现在 System.Xml.dll 中。其他信息: 元素或特性的本地名称不能为空或空字符串。
C# 窗口应用程序设计 使用vs2010
{
string strName=tn.Name;
if (String.IsNullOrEmpty(strName))
{
strName="NoName";
}
XmlElement Test = doc.CreateElement(strName);
root.AppendChild(Test);
if (tn.Nodes != null)
{
ChildNods(tn, Test);
}
}
判断一下tn.Name是否为空,如果空给它一个缺省的非空名字,这样就不会出错了,
<myxml>
 <第一学期>
  <123 />
 </第一学期>
<myxml>
无法保存第一学期这个节点名:这个该怎么解决啊?
private void ChildNods(TreeNode ParentNode, XmlElement Test)
{
foreach (TreeNode tn in ParentNode.Nodes)
{
XmlElement Ts = doc.CreateElement(tn.Text);
Test.AppendChild(Ts);
if (tn.Nodes != null)
{
ChildNods(tn, Ts);
}
}
}
就是不能保存节点,改成你的代码时,树的最外层节点名为NoName!
对doc是全局变量:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
string filename;
string filenames;
int q = 0;
XmlDocument doc = new XmlDocument();
foreach (TreeNode tn in treeView1.Nodes)
{
string strName=tn.Name;
if (String.IsNullOrEmpty(strName))
{
strName="NoName";
}
XmlElement Test = doc.CreateElement(strName);
root.AppendChild(Test);
if (tn.Nodes != null)
{
ChildNods(tn, Test);
}
}
将string strName=tn.Name;改为string strName=tn.Text就行了。
非常感谢你!