using UnityEngine; using System.Collections; using System.Linq; using System.Xml.Linq; using System; public class XML { //static string xmlpath = Application.persistentDataPath + @"myXML";//平台相关的路径(移动端) static string xmlpath=Application.dataPath+@"mydfdfXML";//电脑上的路径,移动端没有这个访问权限 /// <summary> /// 初始化一个XML文件 /// </summary> public static void CreateXMLDocument() { XElement root = new XElement("XMLContent", new XElement("Herb1",new XAttribute("MyVaule","0")), new XElement("Herb2",new XAttribute("MyVaule","0")), new XElement("Herb3",new XAttribute("MyVaule","0")), new XElement("Pill1",new XAttribute("MyVaule","0")), new XElement("Pill2",new XAttribute("MyVaule","0")), new XElement("Pill3",new XAttribute("MyVaule","0")), new XElement("Level",new XAttribute("MyVaule","0")), new XElement("Root","root") ); root.Save(xmlpath); } public static XElement LoadXMLFromFile() { XElement root = XElement.Load(xmlpath); return root; } public static void SetElementValue(string name, string value) { XElement root = LoadXMLFromFile(); root.Element(name).SetAttributeValue("MyVaule", value); root.Save(xmlpath); } /// <summary> /// 在根节点元素之前添加新的元素 /// </summary> /// <param name="name">元素名字</param> /// <param name="value">元素的值</param> public static void AddElement(string name, string value) { XElement root = LoadXMLFromFile(); root.Element("Root").AddBeforeSelf(new XElement(name, new XAttribute("MyValue",value))); root.Save(xmlpath); } /// <summary> /// 删除指定的元素 /// </summary> /// <param name="name">要删除的元素名称</param> public static void RemoveElement(string name) { XElement root = LoadXMLFromFile(); root.Element(name).Remove(); root.Save(xmlpath); } /// <summary> /// 根据元素名查找元素对应的值 /// </summary> /// <param name="name">元素名</param> /// <returns></returns> public static string GetElementValue(string name) { XElement root = LoadXMLFromFile(); XAttribute xattr = root.Element(name).Attribute("MyVaule"); string s = xattr.Value; return s; } }
http://blog.csdn.net/lyq5655779/article/details/7183350
1.写XML文件
- XElement xperson = new XElement("person");//根节点
- xperson.SetAttributeValue("age", 30);//设置属性
- XElement xperson1 = new XElement("person1");
- xperson1.Value = "tom";//设置 innerText值
- xperson1.SetAttributeValue("sex", "男");
- XElement xperson2 = new XElement("person2");
- xperson.Add(xperson1);//加入到根结点
- xperson.Add(xperson2);
- string xml = xperson.ToString();
- Console.WriteLine(xml);
- using (Stream stream = File.OpenWrite(@"D:1.xml"))
- {
- byte[] bytes = new byte[1024];
- bytes = Encoding.UTF8.GetBytes(xml);
- stream.Write(bytes, 0, bytes.Length);//写入文件
- }
2.读取XML文件
----------如何读取xml文件的内容----------------
using(Stream stream=File.OpenRead(@"D:1.xml"))
{
using(StreamReader reader= new StreamReader(stream))
{
//从Reflector从可以看到TextReader的子类是StreamReader所以,可以直接用StreamReader来读取XML文档,传给XDocument.Load方法
XDocument xml=XDocument.Load(reader);//load里面
Console.WriteLine( xml.Root.ToString());//xml文档
Console.WriteLine(xml.Root.Nodes().ElementAt(0).ToString());//ElementAt()第几个子节点
Console.WriteLine(xml.Root.Attribute("age").Value);//返回根节点的属性的值
XNode nodes=xml.Root.Nodes().ElementAt(0);
XElement e=nodes as XElement;
Console.WriteLine(e.Attribute("sex").Value);//读取第一个子节点的属性
}
}
3.读取App.Config
using (Stream stream = File.OpenRead(@"D:
et实例教程练习netXML练习XML练习App.config"))
{
using (StreamReader reader = new StreamReader(stream))
{
XDocument xml = XDocument.Load(reader);
XNode n1 = xml.Root.Nodes().ElementAt(0);//这就是<configuration> ------下面----<connectionStrings>
XElement e1 = n1 as XElement;
XNode n1_1 = e1.Nodes().ElementAt(0);//connectionStrings下面的<add .....>第一个
XNode n1_2 = e1.Nodes().ElementAt(1);//connectionStrings下面的<add .....>第一个
XElement e1_1 = n1_1 as XElement;
XElement e1_2 = n1_2 as XElement;
//Console.WriteLine("Name={0},Connection={1}", e1.Attribute("name").Value, e1.Attribute("connectionString").Value);
Console.WriteLine("第一个连接字符串的name={0},Connection={1}", e1_1.Attribute("name"), e1_1.Attribute("connectionString"));
Console.WriteLine("第一个连接字符串的name={0},Connection={1}", e1_2.Attribute("name"), e1_2.Attribute("connectionString"));
}
}
- using (Stream stream = File.OpenRead(@"D: et实例教程练习netXML练习XML练习App.config"))
- {
- using (StreamReader reader = new StreamReader(stream))
- {
- XDocument xml=XDocument.Load(reader);
- IEnumerable<XElement> XConnstr = xml.Root.Elements("connectionStrings");
- Console.WriteLine(XConnstr.Count().ToString());
- if (XConnstr.Count() == 1)
- {
- XElement Connstr = XConnstr.ElementAt(0);
- foreach(XElement conn in Connstr.Elements("add"))
- {
- string name = conn.Attribute("name").Value;
- string Connection = conn.Attribute("connectionString").Value;
- Console.WriteLine("Name={0},Age={1}", name, Connection);
- }
- }
- }
- }
http://blog.csdn.net/xutao_ustc/article/details/6316933
<?xml version="1.0" encoding="utf-8" ?> <UIConfig Count="1"> <workflow name="OilInbound"> <activity name="Started"> <Input> <Page></Page> <Method></Method> </Input> <Brief> <Page>OilInboundTaskDetail</Page> <Method>GetTaskDetailModel</Method> </Brief> <Detail> <Page>OilInboundTaskDetail</Page> <Method>GetTaskDetailModel</Method> </Detail> <DisplayName>任务创建</DisplayName> </activity> <activity name="OilCompositionAnalysis"> <Input> <Page>OilAnalyzingDataInput</Page> <Method>GetOilAnalyzingDataInputModel</Method> </Input> <Brief> <Page>OilAnalyzingDataBrief</Page> <Method>GetOilAnalyzingDataBriefModel</Method> </Brief> <Detail> <Page>OilAnalyzingDataDetail</Page> <Method>GetOilAnalyzingDataDetailModel</Method> </Detail> <DisplayName>化验</DisplayName> </activity> </workflow> </UIConfig>
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Collections; using System.Xml.Linq; using System.Xml; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { XElement doc = XElement.Load("..//..//data-config.xml");//根元素 string sss = getStr(doc, "OilInbound", "Started", "Input", "Page"); Console.WriteLine(sss); Console.ReadKey(); } //如果当前元素的子元素只有一个,可以直接用.Element("elementName")来得到,如果是多个子元素就用Elements("elementName")得到 private static string getStr(XElement doc,string workflowName,string stepName,string typeName,string pageMethod) { var strEle = from workflow in doc.Elements("workflow") where (string)workflow.Attribute("name") == workflowName select new{ str = workflow.Elements("activity").TakeWhile(x => (string)x.Attribute("name") == stepName).First().Element(typeName).Element(pageMethod).Value }; return strEle.First().str; } } }