查看: 1056|回复: 2
打印 上一主题 下一主题

[其他] C#读写XML文件小结

[复制链接]

2317

主题

54

听众

2万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
20645
精华
62

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2014-11-25 02:13:48 |只看该作者 |倒序浏览
C#读写XML文件一点小结贴。

基础知识:
可以参考如下地址文章:
http://www.cnblogs.com/mingmingruyuedlut/archive/2011/01/26/1945107.html

如果是unity3d中可以参考雨松MOMO的文章:Unity3D研究院之使用 C#合成解析XML与JSON(四十一)

        //所需要添加的命名空间
    using System.Xml;
    //初始化一个xml实例
    XmlDocument xml=new XmlDocument();

    //导入指定xml文件
    xml.Load(“xml文件路径path”);

    //指定一个节点
    XmlNode root=xml.SelectSingleNode("节点名称");

    //获取节点下所有直接子节点
    XmlNodeList childlist=root.ChildNodes;

    //判断该节点下是否有子节点
    root.HasChildNodes;

    //获取同名同级节点集合
    XmlNodeList nodelist=xml.SelectNodes("节点名称");

    //生成一个新节点
    XmlElement node=xml.createElement_x_x_x_x_x("节点名称");

    //将节点加到指定节点下,作为其子节点
    root.A(node);

    //将节点加到指定节点下某个子节点前
    root.InsertBefore(node,root.ChildeNodes);

    //为指定节点的新建属性并赋值
    node.SetAttribute("id","11111");

    //为指定节点添加子节点
    root.A(node);

    //获取指定节点的指定属性值
    string id=node.Attributes["id"].Value;

    //获取指定节点中的文本
    string content=node.InnerText;

    //保存XML文件
    xml.Save(“xml文件存储的路径path”);


忽略注释问题:
C#在读取XML的时候会读取XML中的全部内容,对于其中注释掉的部分也可以通过节点获取到。
我们可以通过设置IgnoreComments 属性来只读取未加注释的XML信息。
下面是加载为参加注释的XML信息代码:
XmlDocument xmlDoc = new XmlDocument();
XmlReaderSettings settings = new XmlReaderSettings();
settings.IgnoreComments = true;
string strPath = Application.StartupPath + string.Format("\\{0}", xmlDocName);
XmlReader reader = XmlReader.Create(strPath, settings); 6: xmlDoc.Load(reader);


需要注意的是,如果你已经用上面这种去注释的方式读入XML,再之后在程序中修改XML是不行的,修改完后最后调用save函数时会报IOException,因为xmlDoc.Load(reader)这句读入XML文件是只读的,你又要修改,所以文件状态标志位冲突了。所以最后save的时候就报IOException了。所以要修改XML文件就常规的new document完后load就行了。
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏1 支持支持0 反对反对0
回复

使用道具 举报

hyui    

1

主题

2

听众

6671

积分

高级设计师

Rank: 6Rank: 6

纳金币
2715
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

沙发
发表于 2014-11-25 04:52:38 |只看该作者
Interesting stuff !!!
回复

使用道具 举报

33

主题

1

听众

2680

积分

中级设计师

Rank: 5Rank: 5

纳金币
559
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

板凳
发表于 2014-11-25 10:59:52 |只看该作者
thanks thanks
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-24 01:29 , Processed in 0.105745 second(s), 27 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部