.NET : 再谈谈XML中的命名空间问题
2009-08-06 09:46
246 查看
我之前有专门的文章讨论过在XML文件中的命名空间问题,事实上,这个命名空间的设计是XML规范中惹来争议最多的一个部分。其出发点是为了更好地标识元素,但事与愿违,它其实更多的时候是增加了麻烦。这方面的讨论很多,这里就不赘述了。
今天我还是用简单的例子再说说如何在编程中处理命名空间的问题
1. 如何在创建XML文档的时候加入命名空间
///创建一个带有默认命名空间的XML元素
///该命名空间不带前缀
Console.WriteLine("创建一个带有默认命名空间的XML元素");
XNamespace xn = "http://www.xizhang.com";
XElement root = new XElement(xn + "root",
new XElement("Item", "Sample")); Console.WriteLine(root);
Console.WriteLine(); Console.WriteLine("创建一个带有前缀的命名空间");
///创建一个带有前缀的命名空间
XElement root2 = new XElement(xn + "root",
new XAttribute(XNamespace.Xmlns + "k", xn.NamespaceName),
new XElement("Item", "Sample")); Console.WriteLine(root2);
Console.WriteLine(); Console.WriteLine("创建一个带有前缀的命名空间,然后给元素也加上该空间"); ///创建一个带有前缀的命名空间,然后给元素也加上该空间
XElement root3 = new XElement(xn + "root",
new XAttribute(XNamespace.Xmlns + "k", xn.NamespaceName),
new XElement(xn+"Item", "Sample")); Console.WriteLine(root3);
Console.WriteLine();
2. 如何读取带有命名空间的元素 假设我们有如下一个范例XML数据文件,我们姑且将其命名为SampleData.xml
Sample1
Sample2
然后看看代码应该如何注意 string sampledata = "..//..//SampleData.xml";
XElement root = XElement.Load(sampledata); XNamespace defaultns = "http://www.xizhang.com";
XNamespace k = "http://www.microsoft.com"; XElement item = root.Element(defaultns+"Item");//这是取得第一个元素,即便它没有前缀,也要添加一个默认的命名空间
Console.WriteLine(item); XElement item2 = root.Element(k + "Item");
Console.WriteLine(item2);
本文由作者:陈希章 于 2009/8/6 9:45:51 发布在:博客园,转载请注明出处
本文是使用博客同步和管理系统自动于2009/8/6 9:45:56 从 博客园 同步过来的。原文地址: http://www.cnblogs.com/chenxizhang/archive/2009/08/06/1540081.html ,发表于2009/8/6 1:46:00.
今天我还是用简单的例子再说说如何在编程中处理命名空间的问题
1. 如何在创建XML文档的时候加入命名空间
///创建一个带有默认命名空间的XML元素
///该命名空间不带前缀
Console.WriteLine("创建一个带有默认命名空间的XML元素");
XNamespace xn = "http://www.xizhang.com";
XElement root = new XElement(xn + "root",
new XElement("Item", "Sample")); Console.WriteLine(root);
Console.WriteLine(); Console.WriteLine("创建一个带有前缀的命名空间");
///创建一个带有前缀的命名空间
XElement root2 = new XElement(xn + "root",
new XAttribute(XNamespace.Xmlns + "k", xn.NamespaceName),
new XElement("Item", "Sample")); Console.WriteLine(root2);
Console.WriteLine(); Console.WriteLine("创建一个带有前缀的命名空间,然后给元素也加上该空间"); ///创建一个带有前缀的命名空间,然后给元素也加上该空间
XElement root3 = new XElement(xn + "root",
new XAttribute(XNamespace.Xmlns + "k", xn.NamespaceName),
new XElement(xn+"Item", "Sample")); Console.WriteLine(root3);
Console.WriteLine();
2. 如何读取带有命名空间的元素 假设我们有如下一个范例XML数据文件,我们姑且将其命名为SampleData.xml
Sample1
Sample2
然后看看代码应该如何注意 string sampledata = "..//..//SampleData.xml";
XElement root = XElement.Load(sampledata); XNamespace defaultns = "http://www.xizhang.com";
XNamespace k = "http://www.microsoft.com"; XElement item = root.Element(defaultns+"Item");//这是取得第一个元素,即便它没有前缀,也要添加一个默认的命名空间
Console.WriteLine(item); XElement item2 = root.Element(k + "Item");
Console.WriteLine(item2);
本文由作者:陈希章 于 2009/8/6 9:45:51 发布在:博客园,转载请注明出处
本文是使用博客同步和管理系统自动于2009/8/6 9:45:56 从 博客园 同步过来的。原文地址: http://www.cnblogs.com/chenxizhang/archive/2009/08/06/1540081.html ,发表于2009/8/6 1:46:00.
相关文章推荐
- .NET : 再谈谈XML中的命名空间问题
- android studio 使用xml:app命名空间代码不提示问题
- Android自定义XML属性以及遇到的命名空间的问题
- java学习脚印:SAX解析xml时命名空间以及参数问题(敏捷版)
- jQuery 跨域请求问题和xml文件中带有命名空间的元素的访问
- Flex访问xml的命名空间问题
- 解析带有命名空间问题web.xml
- Android自定义XML属性以及遇到的命名空间的问题
- SpringMVC项目中配置xml时一些和命名空间相关的问题,如mvc:annotation-driven的前缀 "mvc"未绑定
- XML--schema命名空间问题
- .Net中命名空间的问题(区分大小写)
- 当xml里面有命名空间的时候去读问题
- .net操作带命名空间的xml(仅列一个获取节点值的例子其他以此类推)
- .NET 对含有命名空间的xml解析
- C#查询XML解决“需要命名空间管理器”问题
- java 解析xml 多命名空间问题
- 解决dom4j无法解析xml命名空间的问题
- Android自定义XML属性以及遇到的命名空间的问题
- .net关于xml文件命名空间的解析读取
- .net解析带命名空间的xml写法