XML——c#读取带命名空间的xml
2017-03-13 20:00
701 查看
使用C#读取xml文件有三种常用的方式:
1、xmlDocument
2、XmlTextReader
3、Linq To Xml
但是这些方式在读写有些带命名空间的xml时就不知道怎么办了(例如把xaml文件当作xml文件来读写的时候)。
对于xaml文件,C#虽然能用XamlReader直接把xaml文件转换为对象,但是有的时候我们只是想取得其中一些字段,并不想转换为对象。
本文就以读取xml方式来读写xaml,给大家做一个示范。
其中xaml文件如下所示,文件名为test.xaml:
1、读取xaml节点。
2、写入 xaml 节点
以上转载自:http://www.cnblogs.com/Leaco/p/3170729.html
1、xmlDocument
2、XmlTextReader
3、Linq To Xml
但是这些方式在读写有些带命名空间的xml时就不知道怎么办了(例如把xaml文件当作xml文件来读写的时候)。
对于xaml文件,C#虽然能用XamlReader直接把xaml文件转换为对象,但是有的时候我们只是想取得其中一些字段,并不想转换为对象。
本文就以读取xml方式来读写xaml,给大家做一个示范。
其中xaml文件如下所示,文件名为test.xaml:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:sys="clr-namespace:System;assembly=mscorlib"> <sys:String x:Key="testkey">testStringInnerText</sys:String> </ResourceDictionary>
1、读取xaml节点。
XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("D:\\test.xaml"); //添加命名空间,这一步一定要有,否则读取不了 XmlNamespaceManager xmlNamespaceManager = new XmlNamespaceManager(xmlDoc.NameTable); xmlNamespaceManager.AddNamespace("x", "http://schemas.micorsoft.com/winfx/2006/xaml"); xmlNamespaceManager.AddNamespace("sys", "clr-namespace:System;assembly=mscorlib"); XmlNodeList xmlNodeList = xmlDoc.DocumentElement.ChildNodes; foreach (XmlNode childXmlNode in xmlNodeList) { //读取数据节点(sys:String) string childName = childXmlNode.Name; //读取属性值(testKey) string childAttributesValue = childXmlNode.Attributes["x:Key"].Value; //读取节点文本(testStringInnerText) string childInnerText = childXmlNode.InnerText; //读取子节点 XmlNodeList childXmlNodeList = childXmlNode.ChildNodes; }
2、写入 xaml 节点
var rootXmlDocument=new XmlDocument(); XmlNode xmlNode=new XmlNode(); //需要在这里生成一个xmlNode节点... //... //然后用appendchild方法插入 rootXmlDocument.AppendChild(xmlNode); XmlElement rootXmlElement=(XmlElement)rootXmlDocument.ChildNodes[0]; //设置命名空间 rootXmlElement.SetAttribute("xmlns","http://schemas.microsoft.com/winfx/2006/xaml/presentation"); rootXmlElement.SetAttribute("xmlns:x","http://schemas.microsoft.com/winfx/2006/xaml"); rootXmlElement.SetAttribute("xmlns:sys","clr-namespace:System;assembly=mscorlib"); rootXmlDocument.Save("D:\\test.xaml");
以上转载自:http://www.cnblogs.com/Leaco/p/3170729.html
相关文章推荐
- c#读取带命名空间的xml
- c# 读取带有命名空间的XML
- C# 读取带xmlns 命名空间的XML
- C#读取写入带有命名空间的XML文件
- c#代码查询带命名空间的xml文件
- C#解析XML详解(XPath以及带命名空间NameSpace)
- C#解析XML详解(XPath以及带命名空间NameSpace)
- XML 命名空间(XML Namespaces)介绍以及节点读取方法
- C#操作XML(带命名空间)
- Linq to Xml读取复杂xml(带命名空间)
- JDOM2.0.5版本通过xpath读取xml或读取带有命名空间的xml
- c#获取以及新增带命名空间的xml节点小例子
- 读取带命名空间的Xml文档的方法备忘
- .NET(C#):使用XPath查询带有命名空间(有xmlns)的XML
- .net关于xml文件命名空间的解析读取
- XML 命名空间(XML Namespaces)介绍以及节点读取方法
- 【原创】C#操作XML(带命名空间)
- C# 中的默认命名空间的范围 (LINQ to XML)
- C#处理带有命名空间的xml方法
- Linq to Xml读取复杂xml(带命名空间)