LinqTOXML DescendantNodes、DescendantNodesAndSelf和Descendants、DescendantsAndSelf方法
Examples:
- /*DescendantNodes 原型
- *
- * 功能:按文档顺序返回此文档或元素的子代节点集合。
- *
- * public static IEnumerable<XNode> DescendantNodes<T> (
- * this IEnumerable<T> source
- * ) where T : XContainer
- *
- */
- public static void DescendantNodesProtype()
- {
- XDocument xdocument = new XDocument(new XElement("Books",
- new XElement("Book",
- new XAttribute("type", "Author"),
- new XElement("FirstName", "Joe"),
- new XElement("LastName", "Rattz")),
- new XElement("Book",
- new XAttribute("type", "Editor"),
- new XElement("FirstName", "Ws"),
- new XElement("LastName", "Test"))));
- IEnumerable<XElement> elements = xdocument.Elements("Books");
- foreach (XElement element in elements)
- {
- Console.WriteLine("Source Element {0}: value={1}", element.Name, element.Value);
- }
- foreach (XNode xNode in elements.DescendantNodes())
- {
- Console.WriteLine("Nodes {0}", xNode);
- }
- }
- /*DescendantNodesAndSelf 原型
- *
- * 功能:返回节点的集合,其中包含源集合中的每个元素及其子代节点
- *
- *public static IEnumerable<XNode> DescendantNodesAndSelf (
- * this IEnumerable<XElement> source
- * )
- *
- */
- public static void DescendantNodesAndSelf()
- {
- XDocument xdocument = new XDocument(new XElement("Books",
- new XElement("Book",
- new XAttribute("type", "Author"),
- new XElement("FirstName", "Joe"),
- new XElement("LastName", "Rattz")),
- new XElement("Book",
- new XAttribute("type", "Editor"),
- new XElement("FirstName", "Ws"),
- new XElement("LastName", "Test"))));
- IEnumerable<XElement> elements = xdocument.Elements("Books");
- foreach (XElement element in elements)
- {
- Console.WriteLine("Source Element {0}: value={1}", element.Name, element.Value);
- }
- foreach (XNode node in elements.DescendantNodesAndSelf())
- {
- Console.WriteLine("Nodes {0}", node);
- }
- }
- /*Descendants 第一种原型
- *
- * 功能:返回元素集合,其中包含源集合中每个元素和文档的子代元素
- *
- * public static IEnumerable<XElement> Descendants<T> (
- * this IEnumerable<T> source
- * ) where T : XContainer
- *
- */
- public static void DescendantsFirstProtype()
- {
- XDocument xdocument = new XDocument(new XElement("Books",
- new XElement("Book",
- new XAttribute("type", "Author"),
- new XElement("FirstName", "Joe"),
- new XElement("LastName", "Rattz")),
- new XElement("Book",
- new XAttribute("type", "Editor"),
- new XElement("FirstName", "Ws"),
- new XElement("LastName", "Test"))));
- IEnumerable<XElement> elements = xdocument.Elements("Books");
- foreach (XElement element in elements)
- {
- Console.WriteLine("Source Element {0}: value={1}", element.Name, element.Value);
- }
- foreach (XElement xElement in elements.Descendants())
- {
- Console.WriteLine("XElements {0}", xElement);
- }
- }
- /*Descendants 第二种原型
- *
- * 功能:返回经过筛选的元素集合,其中包含源集合中每个元素和文档的子代元素。集合中只包括具有匹配 XName 的元素
- *
- * public static IEnumerable<XElement> Descendants<T> (
- * this IEnumerable<T> source,
- * XName name
- * ) where T : XContainer
- *
- */
- public static void DescendantsSecondProtype()
- {
- XDocument xdocument = new XDocument(new XElement("Books",
- new XElement("Book",
- new XAttribute("type", "Author"),
- new XElement("FirstName", "Joe"),
- new XElement("LastName", "Rattz")),
- new XElement("Book",
- new XAttribute("type", "Editor"),
- new XElement("FirstName", "Ws"),
- new XElement("LastName", "Test"))));
- IEnumerable<XElement> elements = xdocument.Elements("Books");
- foreach (XElement element in elements)
- {
- Console.WriteLine("Source Element {0}: value={1}", element.Name, element.Value);
- }
- foreach (XElement xElement in elements.Descendants("FirstName"))
- {
- Console.WriteLine("XElements {0}", xElement);
- }
- }
- /*DescendantsAndSelf 第一种原型
- *
- * 功能:返回元素集合,其中包含源集合中的每个元素及其子代元素。
- *
- * public static IEnumerable<XElement> DescendantsAndSelf (
- * this IEnumerable<XElement> source
- * )
- *
- */
- public static void DescendantsAndSelf()
- {
- XDocument xdocument = new XDocument(new XElement("Books",
- new XElement("Book",
- new XAttribute("type", "Author"),
- new XElement("FirstName", "Joe"),
- new XElement("LastName", "Rattz")),
- new XElement("Book",
- new XAttribute("type", "Editor"),
- new XElement("FirstName", "Ws"),
- new XElement("LastName", "Test"))));
- IEnumerable<XElement> elements = xdocument.Elements("Books");
- foreach (XElement element in elements)
- {
- Console.WriteLine("Source Element {0}: value={1}", element.Name, element.Value);
- }
- foreach (XElement xElement in elements.DescendantsAndSelf())
- {
- Console.WriteLine("XElements {0}", xElement);
- }
- }
- /*DescendantsAndSelf 第二种原型
- *
- * 功能:返回经过筛选的元素集合,其中包含源集合中的每个元素及其子代元素。集合中只包括具有匹配 XName 的元素。
- *
- * public static IEnumerable<XElement> DescendantsAndSelf (
- * this IEnumerable<XElement> source,
- * XName name
- * )
- *
- */
- public static void DescendantsAndSelfSecondProtype()
- {
- XDocument xdocument = new XDocument(new XElement("Books",
- new XElement("Book",
- new XAttribute("type", "Author"),
- new XElement("FirstName", "Joe"),
- new XElement("LastName", "Rattz")),
- new XElement("Book",
- new XAttribute("type", "Editor"),
- new XElement("FirstName", "Ws"),
- new XElement("LastName", "Test"))));
- IEnumerable<XElement> elements = xdocument.Elements("Books");
- foreach (XElement element in elements)
- {
- Console.WriteLine("Source Element {0}: value={1}", element.Name, element.Value);
- }
- foreach (XElement xElement in elements.DescendantsAndSelf("FirstName"))
- {
- Console.WriteLine("XElements {0}", xElement);
- }
- }