c语言怎么自动读取文件,C语言怎么实现对txt文件的读取和写入

/**/

///

/// XML 操作基类

///

public class XmlHelper

{

/**/

///

/// 读取Xml到DataSet中

///

/// 路径

/// 结果集

public static DataSet GetXml(string XmlPath)

{

DataSet ds = new DataSet();

ds.ReadXml(@XmlPath);

return ds;

}

/**/

///

/// 读取xml文档并返回一个节点:适用于一级节点

///

/// xml路径

/// 节点

///

public static string ReadXmlReturnNode(string XmlPath, string Node)

{

XmlDocument docXml = new XmlDocument();

docXml.Load(@XmlPath);

XmlNodeList xn = docXml.GetElementsByTagName(Node);

return xn.Item(0).InnerText.ToString();

}

/**/

///

/// 查找数据,返回当前节点的所有下级节点,填充到一个DataSet中

///

/// xml文档路径

/// 节点的路径:根节点/父节点/当前节点

///

public static DataSet GetXmlData(string xmlPath, string XmlPathNode)

{

XmlDocument objXmlDoc = new XmlDocument();

objXmlDoc.Load(xmlPath);

DataSet ds = new DataSet();

StringReader read = new StringReader(objXmlDoc.SelectSingleNode(XmlPathNode).OuterXml);

ds.ReadXml(read);

return ds;

}

/**/

///

/// 更新Xml节点内容

///

/// xml路径

/// 要更换内容的节点:节点路径 根节点/父节点/当前节点

/// 新的内容

public static void XmlNodeReplace(string xmlPath, string Node, string Content)

{

XmlDocument objXmlDoc = new XmlDocument();

objXmlDoc.Load(xmlPath);

objXmlDoc.SelectSingleNode(Node).InnerText = Content;

objXmlDoc.Save(xmlPath);

}

/**/

///

/// 更改节点的属性值

///

/// 文件路径

/// 节点路径

/// 要更改的节点属性的名称

/// 更改的属性值

public static void XmlAttributeEdit(string xmlPath, string NodePath, string NodeAttribute1, string NodeAttributeText)

{

XmlDocument objXmlDoc = new XmlDocument();

objXmlDoc.Load(xmlPath);

XmlNode nodePath = objXmlDoc.SelectSingleNode(NodePath);

XmlElement xe = (XmlElement)nodePath;

xe.SetAttribute(NodeAttribute1, NodeAttributeText);

objXmlDoc.Save(xmlPath);

}

/**/

///

/// 删除XML节点和此节点下的子节点

///

/// xml文档路径

/// 节点路径

public static void XmlNodeDelete(string xmlPath, string Node)

{

XmlDocument objXmlDoc = new XmlDocument();

objXmlDoc.Load(xmlPath);

string mainNode = Node.Substring(0, Node.LastIndexOf("/"));

objXmlDoc.SelectSingleNode(mainNode).RemoveChild(objXmlDoc.SelectSingleNode(Node));

objXmlDoc.Save(xmlPath);

}

/**/

///

/// 删除一个节点的属性

///

/// 文件路径

/// 节点路径(xpath)

/// 属性名称

public static void xmlnNodeAttributeDel(string xmlPath, string NodePath, string NodeAttribute)

{

XmlDocument objXmlDoc = new XmlDocument();

objXmlDoc.Load(xmlPath);

XmlNode nodePath = objXmlDoc.SelectSingleNode(NodePath);

XmlElement xe = (XmlElement)nodePath;

xe.RemoveAttribute(NodeAttribute);

objXmlDoc.Save(xmlPath);

}

/**/

///

/// 插入一个节点和此节点的子节点

///

/// xml路径

/// 当前节点路径

/// 新插入节点

/// 插入节点的子节点

/// 子节点的内容

public static void XmlInsertNode(string xmlPath, string MailNode, string ChildNode, string Element, string Content)

{

XmlDocument objXmlDoc = new XmlDocument();

objXmlDoc.Load(xmlPath);

XmlNode objRootNode = objXmlDoc.SelectSingleNode(MailNode);

XmlElement objChildNode = objXmlDoc.CreateElement(ChildNode);

objRootNode.AppendChild(objChildNode);

XmlElement objElement = objXmlDoc.CreateElement(Element);

objElement.InnerText = Content;

objChildNode.AppendChild(objElement);

objXmlDoc.Save(xmlPath);

}

/**/

///

/// 向一个节点添加属性

///

/// xml文件路径

/// 节点路径

/// 要添加的节点属性的名称

/// 要添加属性的值

public static void AddAttribute(string xmlPath, string NodePath, string NodeAttribute1, string NodeAttributeText)

{

XmlDocument objXmlDoc = new XmlDocument();

objXmlDoc.Load(xmlPath);

XmlAttribute nodeAttribute = objXmlDoc.CreateAttribute(NodeAttribute1);

XmlNode nodePath = objXmlDoc.SelectSingleNode(NodePath);

nodePath.Attributes.Append(nodeAttribute);

XmlElement xe = (XmlElement)nodePath;

xe.SetAttribute(NodeAttribute1, NodeAttributeText);

objXmlDoc.Save(xmlPath);

}

/**/

///

/// 插入一节点,带一属性

///

/// Xml文档路径

/// 当前节点路径

/// 新节点

/// 属性名称

/// 属性值

/// 新节点值

public static void XmlInsertElement(string xmlPath, string MainNode, string Element, string Attrib, string AttribContent, string Content)

{

XmlDocument objXmlDoc = new XmlDocument();

objXmlDoc.Load(xmlPath);

XmlNode objNode = objXmlDoc.SelectSingleNode(MainNode);

XmlElement objElement = objXmlDoc.CreateElement(Element);

objElement.SetAttribute(Attrib, AttribContent);

objElement.InnerText = Content;

objNode.AppendChild(objElement);

objXmlDoc.Save(xmlPath);

}

/**/

///

/// 插入一节点,不带属性

///

/// Xml文档路径

/// 当前节点路径

/// 新节点

/// 新节点值

public static void XmlInsertElement(string xmlPath, string MainNode, string Element, string Content)

{

XmlDocument objXmlDoc = new XmlDocument();

objXmlDoc.Load(xmlPath);

XmlNode objNode = objXmlDoc.SelectSingleNode(MainNode);

XmlElement objElement = objXmlDoc.CreateElement(Element);

objElement.InnerText = Content;

objNode.AppendChild(objElement);

objXmlDoc.Save(xmlPath);

}

/**/

///

/// 在根节点下添加父节点

///

public static void AddParentNode(string xmlPath, string parentNode)

{

XmlDocument xdoc = new XmlDocument();

xdoc.Load(xmlPath);

// 创建一个新的menber节点并将它添加到根节点下

XmlElement Node = xdoc.CreateElement(parentNode);

xdoc.DocumentElement.PrependChild(Node);

xdoc.Save(xmlPath);

}

/**/

///

/// 根据节点属性读取子节点值(较省资源模式)

///

/// xml路径

/// 父节点值

/// 属性名称

/// 属性值

/// 返回的数组长度

///

public static System.Collections.ArrayList GetSubElementByAttribute(string XmlPath, string FatherElement, string AttributeName, string AttributeValue, int ArrayLength)

{

System.Collections.ArrayList al = new System.Collections.ArrayList();

XmlDocument docXml = new XmlDocument();

docXml.Load(@XmlPath);

XmlNodeList xn;

xn = docXml.DocumentElement.SelectNodes("//" + FatherElement + "[" + @AttributeName + "='" + AttributeValue + "']");

XmlNodeList xx = xn.Item(0).ChildNodes;

for (int i = 0; i < ArrayLength & i < xx.Count; i++)

{

al.Add(xx.Item(i).InnerText);

}

return al;

}

取消

评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值