快速业务通道

LINQ学习笔记:XDocument文档与XML声明

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-03-13

最终生成的结果是:

   1: <?xml version="1.0" encoding="utf-8" standalone="no"?>
   2: <!--Reference a stylesheet-->
   3: <?xml-stylesheet xhref=''styles.css'' type=''text/css''?>
   4: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
   5:   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
   6: <html xmlns="http://www.w3.org/1999/xhtml">
   7:   <head>
   8:     <title>An XHTML page</title>
   9:   </head>
  10:   <body>
  11:     <p>This is the content</p>
  12:   </body>
  13: </html>

XDocument还有一个Root属性用于快速访问文档中的单一元素. 其反向的链接是有XObject的Document属性提供, 并可以应用于树中的所有对象.

   1: Console.WriteLine (doc.Root.Name.LocalName);    // html
   2: XElement bodyNode = doc.Root.Element (ns + "body");
   3: Console.WriteLine (bodyNode.Document == doc);   // True

XDeclaration不是XNode, 而且不会出现在文档的Nodes集合中, 这点与备注, 根节点, 以及processing instructions节点是不同的. 相反, 它被赋值到了一个专用的属性Declaration上. 这就是为什么下面的例子”True”只重复了4次而不是5次

   1: Console.WriteLine (doc.Root.Parent == null);    // True
   2: foreach (XNode node in doc.Nodes( ))
   3:   Console.Write
   4:     (node.Parent == null);          // TrueTrueTrueTrue

XML声明

一个标准的XML文件通常会以类似下面的声明开始:

   1: <?xml version="1.0" encoding="utf-8"standalone="yes"?>

XML声明确保XML文件能够被解析器正确解析. XElement和XDocument在处理XML声明的时候遵循以下规则:

  • 调用Save(FileName)的时候总会写入一个声明
  • 调用Save(XmlWriter)将会写入一个声明, 除非XmlWriter已经被指示不使用
  • ToString方法永远不会处理XML声明

当你构造XmlWriter的时候, 你可以通过设置XmlWriterSettings对象上的OmitXmlDeclaration和

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号