LINQ学习笔记:XML命名空间
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-03-13
然后,当X-DOM读取或输出XML的时候, 它将会应用默认的命名空间: 1: Console.WriteLine (data.ToString( ));
2:
3: OUTPUT:
4: <data xmlns="http://domain.com/xmlspace"> 5: <customer>Bloggs</customer>
6: <purchase>Bicycle</purchase>
7: </data>
8:
9: Console.WriteLine
10: (data.Element (ns + "customer").ToString( )); 11:
12: OUTPUT:
13: <customer xmlns="http://domain.com/xmlspace">Bloggs 14: </customer>
如果你在构造XElement的子节点是没有指定命名空间——换句话说: 1: XNamespace ns = "http://domain.com/xmlspace"; 2: var data = new XElement (ns + "data", 3: new XElement ("customer", "Bloggs"), 4: new XElement ("purchase", "Bicycle") 5: );
6: Console.WriteLine (data.ToString( ));
你将会得到如下的输出: 1: <data xmlns="http://domain.com/xmlspace"> 2: <customer xmlns="">Bloggs</customer> 3: <purchase xmlns="">Bicycle</purchase> 4: </data>
另一个陷阱可能使你浏览X-DOM的时候会失败: 1: XNamespace ns = "http://domain.com/xmlspace"; 2: var data = new XElement (ns + "data", 3: new XElement (ns + "customer", "Bloggs"), 4: new XElement (ns + "purchase", "Bicycle") 5: );
6: XElement x = data.Element (ns + "customer"); // ok 7: XElement y = data.Element ("customer"); // null 如果你没有指定命名空间来构造X-DOM树, 你可以随后类似下面这样将一个单一的命名空间赋值到每一个元素: 1: foreach (XElement e in data.DescendantsAndSelf( )) 2: if (e.Name.Namespace == "") 3: e.Name = ns + e.Name.LocalName;
前缀 X-DOM对待前缀就像它对待命名空间一样, 主要也是为了序列化功能. 这意味着你可以选择完全 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于LINQ学习笔记:XML命名空间的所有评论