文档章节

assistant类--xml文件错误信息保存

剑禅觅心
 剑禅觅心
发布于 2016/08/01 21:27
字数 273
阅读 22
收藏 0
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.IO;
using System.Xml.Linq;


namespace windowsServerTest
{
    public class assistant
    {
        public String getXmlAttrValue(String filepath, String nodepath, String attribute, int index)
        {
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load(filepath);
            XmlNodeList nodeList = xmlDoc.SelectSingleNode(nodepath).ChildNodes;
            XmlElement xe = (XmlElement)nodeList[index];
            String value = xe.GetAttribute(attribute);
            return value;
        }
        public bool appendIfo(String filepath, String date, String message, String stacktrace, String csspath)
        {
            if (!File.Exists(filepath))
            { 
                int i = filepath.LastIndexOf(@"\");
                bool bl = CreateXmlFile(filepath.Substring(0,i-1),filepath.Substring(i+1,filepath.Length-i),csspath);
                if (!bl) return false;
            }
            //使用传统方式添加节点
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load(filepath);
            XmlNode root = xmlDoc.SelectSingleNode("root");
            XmlElement xe1 = xmlDoc.CreateElement("error");
            
            XmlElement xesub1 = xmlDoc.CreateElement("date");
            xesub1.InnerText = date;
            xe1.AppendChild(xesub1);
            XmlElement xesub2 = xmlDoc.CreateElement("message");
            xesub2.InnerText = message;
            xe1.AppendChild(xesub2);
            XmlElement xesub3 = xmlDoc.CreateElement("stacktrace");
            xesub3.InnerText = stacktrace;
            xe1.AppendChild(xesub3);


            root.AppendChild(xe1);
            xmlDoc.Save(filepath);


            return true;
        }
        public bool CreateXmlFile(String savepath,String filename,String csspath)
        {
            try
            {
                //使用Linq to xml 添加文件头声明
                String target = "xml-stylesheet";
                String data = "href='" + csspath + "'  type='text/css'";
                Object[] param = { new XProcessingInstruction(target, data),new XElement("root") };
                XDocument xdoc = new XDocument(param);
                xdoc.Declaration = new XDeclaration("1.0", "utf-8", "true");


                if (Directory.Exists(savepath))
                    xdoc.Save(savepath + "//" + filename);
                else
                    if(CreateDir(savepath))
                        xdoc.Save(savepath + "//" + filename);
            }
            catch (Exception)
            {
                return false;
            }
            return true;
        }
        public static bool CreateDir(String path)
        {
            String[] pf = null;
            String directory = String.Empty;
            try
            {
                if (!File.Exists(path))
                {
                    pf = path.Split(new char[] { '\\' });
                    for (int i = 0; i < pf.Length - 1; i++)
                    {
                        directory += pf[i];
                        if (!Directory.Exists(directory))
                            Directory.CreateDirectory(directory);
                        directory += "\\";
                    }
                }
                return true;
            }
            catch (Exception) {}
            return false;
        }
    }
}

本文转载自:http://blog.csdn.net/amohan/article/details/11610821

剑禅觅心
粉丝 7
博文 224
码字总数 0
作品 0
深圳
高级程序员
私信 提问
Cocos数据篇[3.4](3) ——XML数据操作

【唠叨】 XML 即 可扩展标记语言,在游戏开发中,常用于保存游戏数据信息,如最高分、游戏等级等信息,和描述一些资源等。 加载动画的plist文件、瓦片地图编辑器到处的地图格式tmx文件,实际...

shahdza
2015/02/17
0
0
Hive外部分区表加载flume打到hdfs上文件,读不到.tmp文件

flume打到hdfs上时,按照文件大小生成文件,在达到指定大小之前数据都是以.tmp文件形式保存在hdfs上,hive外部表也会加载这些文件,但是当文件完成后.tmp会消失,这时候hive会报找不到文件的...

ivan-Zhao
2016/04/01
674
0
OSC APP 源码解析一

阅读App的源码,一般都是从AndroidManifest.xml开始,OSC也不例外,我们也从这个xml文件开始,具体的内容如下: <application android:name=".AppContext" android:icon="@drawable/icon" an......

hx50859042
2013/11/21
185
0
IOS项目实战-登录解析(Http请求)

离发 IOS项目实战-登录解析 这篇博客有差不多一周了。也看到有朋友评论要把doLogin的代码补上来,因为我也是新手,所以在学习中写博客,效率是慢了点,同样在写例子的时候也碰到很多问题。也...

小小贝
2012/12/13
9.1K
13
C#反射实践续

前回在C#反射实践的文章中,只介绍了利用反射如何把Xml文件中的数据读取设定到类对象的属性中的方法,这回来介绍如何利用反射机制把值对象写入Xml文件的方法 本文介绍的把值对象写入Xml文件的...

长平狐
2012/10/16
192
0

没有更多内容

加载失败,请刷新页面

加载更多

华为手机翻译功能怎么使用?这三种方法请务必收藏

华为手机翻译功能怎么使用?在我们的生活中会经常遇到翻译问题,许多外语不好的朋友该怎么办呢?华为手机已经为我们解决了这个问题,今天小编就教大家学会使用华为手机中的三种翻译技巧,需要...

翻译小天才
27分钟前
4
0
企业服务软件开发中需要注意的三个问题

在开发企业服务软件时,我们需要分为:业务需求、用户需求、产品需求,三大需求层次,三个层次互相关联,企业服务软件开发首先要服务业务,需要满足业务的需求,再关注用户体验,也就是用户需...

积木创意科技
30分钟前
4
0
C++容器底层数据结构

内置数组: int arr[10][10];memset(arr,0,10*10*sizeof(int)); //初始化int tmp[10][10];memcpy(arr, tmp, 10 * 10 * sizeof(int));//拷贝 void *memcpy(void *destin, void *source,......

SibylY
30分钟前
3
0
Dubbo-自适应拓展机制

背景 在 Dubbo 中,很多拓展都是通过 SPI 机制进行加载的,比如 Protocol、Cluster、LoadBalance 等,这些都是Dubbo的基础组件。这些基础组件的拓展不是在系统框架启动阶段被加载,而是拓展方...

rock-man
59分钟前
7
0
Kali安装fcitx输入法(五笔)

安装fcitx > sudo apt-get install fcitx-rime fcitx-config-gtk3 重启 > sudo reboot fcitx配置 效果就是这样 配置输入法切换 系统设置...

yeahlife
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部