首页 新闻 搜索 专区 学院

C# 如何创建一个xml文件?并写入指定内容?

0
悬赏园豆:10 [已解决问题] 解决于 2011-12-22 14:11

要求:创建一下文件在D:\abc.xml,目前里面是空白的,现要往里面写入如下内容:

<Config>

<Path>E:\Test\</Path>

<Regex><![CDDATA[@^abc$]]></Regex>

<ini timeout="200">time</ini>

</Config>

问题简单却烦人,要求必须用xml命名空间中提供的对象来实现,请问代码怎么写?麻烦了~~

hexllo的主页 hexllo | 菜鸟二级 | 园豆:397
提问于:2011-12-14 09:58
< >
分享
最佳答案
1

你看看这个 拷贝代码 运行 就能生成你需要的xml文件了

 //首先创建 XmlDocument xml文档
XmlDocument xml = new XmlDocument();

//创建根节点 config
XmlElement config = xml.CreateElement("Config");
//把根节点加到xml文档中
xml.AppendChild(config);

//创建一个节点 path(用于做子节点)
XmlElement path = xml.CreateElement("Path");
//path节点中的文本内容为 E:\Test\ @用于转义后面的'\'
path.InnerText = @"E:\Test\";
//将path添加为config的子节点
config.AppendChild(path);

//以下Regex同理
XmlElement regex = xml.CreateElement("Regex");
regex.InnerText = "<![CDDATA[@^abc$]]>";
config.AppendChild(regex);


XmlElement ini = xml.CreateElement("ini");
//所以我们需要创建 ini标签里的xml属性 属性名为timeout
XmlAttribute timeout = xml.CreateAttribute("timeout");
//timeout属性的内容为200
timeout.InnerText = "200";
//标签ini里的文档内容为 time
ini.InnerText = "time";
//创建完标签的属性timeout 后需要将其添加到ini标签的属性里
ini.Attributes.Append(timeout);
//最后将ini标签添加到config 父节点里
config.AppendChild(ini);

//最后将整个xml文件保存在D盘
xml.Save(@"D:\abc.xml");

 

运行效果

<Config>
<Path>E:\Test\</Path>
<Regex><![CDDATA[@^abc$]]></Regex>
<ini timeout="200">time</ini>
</Config>
收获园豆:10
SilverSky(Jason) | 菜鸟二级 |园豆:220 | 2011-12-15 21:21

很有心,谢谢!

hexllo | 园豆:397 (菜鸟二级) | 2011-12-22 14:11
其他回答(1)
0

好巧,下面这段代码创建的xml和你写的一模一样。

XmlDocument doc = new XmlDocument();
XmlElement ConfigNode = (XmlElement)doc.CreateElement("Config");
doc.AppendChild(ConfigNode);

XmlElement PathNode = (XmlElement)doc.CreateElement("Path");
PathNode.InnerText=@"E:\Test\";
ConfigNode.AppendChild(PathNode);

XmlElement RegexNode = (XmlElement)doc.CreateElement("Regex");
XmlCDataSection cdata = doc.CreateCDataSection("@^abc$");
RegexNode.AppendChild(cdata);
//RegexNode.InnerXml = @"[CDDATA[@^abc$]]";
ConfigNode.AppendChild(RegexNode);

XmlElement iniNode = (XmlElement)doc.CreateElement("ini");
iniNode.InnerText = @"time";
ConfigNode.AppendChild(iniNode);

XmlAttribute timeout = (XmlAttribute) doc.CreateAttribute("timeout");
timeout.InnerText = "200";
iniNode.Attributes.Append(timeout);

doc.Save("c:\\a.xml");
LCM | 园豆:6876 (大侠五级) | 2011-12-14 10:23

非常感谢,你的代码也很不错,但只能选择一个,谢谢你!

支持(0) 反对(0) hexllo | 园豆:397 (菜鸟二级) | 2011-12-22 14:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册