2008年9月18日 星期四

XDocument 與 XElement 的一個不同處

使用 XElement 或 XDocument 來載入 xml 時,到底有什麼不同的地方呢?

範例

 

      string xml = @"el 1el 2el 3";
      XElement el = XElement.Parse(xml);
      var q = from e in el.Elements()
              select e;
      Console.WriteLine("Load in XElement");
      foreach (var item in q)
      {
        Console.WriteLine(item);
      }
      XDocument doc = XDocument.Parse(xml);
      q = from e in doc.Elements()
          select e;
      Console.WriteLine("Load in XDocument");
      foreach (var item in q)
      {
        Console.WriteLine(item);
      }
結果如下
Load in XElement
el 1
el 2
el 3
Load in XDocument

  
  el 1
  el 2
  el 3
由此可看出,使用 XElement 的 Elements() 時,不會讀取 xml comment,會將該 r 當作 element 的current node
而使用 XDocument 的 Elements()時,會將 xml comment 也當成 node。會將整份文件當成 current document,所以使用 Elements()方法時,就會讀到 r 這一個子節點了。

1 則留言:

匿名 提到...

how comes r?

Share with Facebook