LINQ to XML API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ XML рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛

рд╣рд╛рд▓ рддрдХ рддрдХ, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ XML рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛, рдореИрдВрдиреЗ рдЬрд╣рд╛рдБ рднреА рд╕рдВрднрд╡ рд╣реЛ, рдЗрд╕рд╕реЗ рдмрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдмрд╕ рдЙрдиреНрд╣реЗрдВ рдорд╛рдирдХ рдлрд╝рд╛рдЗрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдЬрд╣рд╛рдВ рдбреЗрдЯрд╛ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдирд╛ рдЬрд░реВрд░реА рдерд╛, рд╡рд╣рд╛рдВ рдПрдХреНрд╕рдПрдордПрд▓ рд╕реЗ рдХреЛрдИ рдмрдЪ рдирд╣реАрдВ рдкрд╛рдпрд╛ред рдореБрдЭреЗ рдереЛрдбрд╝реА рд╕реА рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдпрд╛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдХреЛрдб рдмрдирд╛рдирд╛ рдкрдбрд╝рд╛ред рд╣рд╛рдВ, рд╡рд╣ XML рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЙрдбрд▓ (DOM) API рд╣реИред



XML DOM API рдЙрджрд╛рд╣рд░рдг



рдЖрдкрдХреЛ рдирд┐рдореНрди рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

< Groups >

< Group Id ="523063B0-47C0-4ABE-8D38-4A449137A00B" DepartmentId ="D939743F-BFF7-41E4-9A1B-1193EEFF0486" >

< Name > 555A </ Name >

< Course > 5 </ Course >

</ Group >

</ Groups >








рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓, рд▓реЗрдХрд┐рди рд╕реНрд╡реИрдЪреНрдЫрд┐рдХ рдХреЛрдб рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛:

private sealed class Nodes

{

public const string Root = "Groups" ;



// Attributes.

public const string Group = "Group" ;

public const string Id = "Id" ;

public const string DepartmentId = "DepartmentId" ;



// Elements.

public const string Name = "Name" ;

public const string Course = "Course" ;

}



// Create XML document.

XmlDocument document = new XmlDocument ();



// Create root element.

XmlElement rootElement = document.CreateElement( Nodes .Root);



// Create Group element.

XmlElement groupElement = document.CreateElement( Nodes .Group);



// Create attributes.

XmlAttribute idAttribute = document.CreateAttribute( Nodes .Id);

idAttribute.InnerText = "523063B0-47C0-4ABE-8D38-4A449137A00B" ;

groupElement.Attributes.Append(idAttribute);



XmlAttribute departmentIdAttribute = document.CreateAttribute( Nodes .DepartmentId);

departmentIdAttribute.InnerText = "D939743F-BFF7-41E4-9A1B-1193EEFF0486" ;

groupElement.Attributes.Append(departmentIdAttribute);



// Create elements.

XmlElement nameElement = document.CreateElement( Nodes .Name);

nameElement.InnerText = "555A" ;

groupElement.AppendChild(nameElement);



XmlElement courseElement = document.CreateElement( Nodes .Course);

courseElement.InnerText = "5" ;

groupElement.AppendChild(courseElement);



rootElement.AppendChild(groupElement);

document.AppendChild(rootElement);








рдореЗрд░реЗ рд╕рд╛рде рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреЛрдб рдХреЛ рд▓рд┐рдЦрдирд╛, рдбрд┐рд╕рд╛рдЗрдб рдХрд░рдирд╛ рдФрд░ рдмрдирд╛рдП рд░рдЦрдирд╛ рдмрд╣реБрдд рд╕реБрдЦрдж рдирд╣реАрдВ рд╣реИред



рдЗрд╕ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдкрд░рд┐рдгрд╛рдореА XML рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдпрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рддреАрди рдЪрд░рдг рд╣реЛрддреЗ рд╣реИрдВ: рдЗрдирд░рдЯреЗрдХреНрд╕реНрдЯ рдкреНрд░реЙрдкрд░реНрдЯреА рд╕реЗрдЯ рдХрд░реЗрдВ, рдФрд░ рдЗрд╕реЗ рдореМрдЬреВрджрд╛ рддрддреНрд╡ рдпрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ XmlDocument рдмрдирд╛рдП рдмрд┐рдирд╛, рдХреЗрд╡рд▓ рдПрдХ рддрддреНрд╡ рдмрдирд╛рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ, рдФрд░ рдпрд╣ рдЕрдХреНрд╕рд░ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред



рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдиреЗ рд╣рдореЗрдВ рди рдХреЗрд╡рд▓ XML рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХреАрдХреГрдд LINQ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХреА, рдмрд▓реНрдХрд┐ XML DOM API рдХреЛ рдлрд┐рд░ рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ред

рдореИрдВ рдЖрдЬ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд╛рдорд╕реНрдерд╛рди рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

using System.Collections.Generic;

using System.Linq;

using System.Xml.Linq;








рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛, рдорд╛рдирдХ DOM рдореЙрдбрд▓ рдХреА рдХрдорд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкрд░рд┐рдгрд╛рдореА XML рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдкрдврд╝рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдерд╛ред LINQ to XML API рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ рдПрдХ рдирдИ рддрдХрдиреАрдХ рдЬрд┐рд╕реЗ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдирд┐рд░реНрдорд╛рдг рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдбрд┐рдЬрд╛рдЗрди рдЖрдкрдХреЛ рдПрдХреНрд╕рдПрдордПрд▓ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдФрд░ рдЙрдирдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ - рдПрдХ рд╕рд╛рде, рдПрдХ рд╣реА рдмрдпрд╛рди рдореЗрдВ, рдХрдИ рдЕрддрд┐рднрд╛рд░рд┐рдд рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдгред



рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ XML рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдЬреЛ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ, рд╡рд╣ LINQ рд╕реЗ XML API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдЬреИрд╕рд╛ рд▓рдЧреЗрдЧрд╛:

XElement document = new XElement ( Nodes .Root,

new XElement ( Nodes .Group,

new XAttribute ( Nodes .Id, "523063B0-47C0-4ABE-8D38-4A449137A00B" ),

new XAttribute ( Nodes .DepartmentId, "D939743F-BFF7-41E4-9A1B-1193EEFF0486" ),

new XElement ( Nodes .Name, "555A" ),

new XElement ( Nodes .Course, 5)));






рд╡реИрд╕реЗ рдХреИрд╕реЗ? рдЖрдкрдХреЗ рд▓рд┐рдП рдХреМрди рд╕рд╛ рдХреЛрдб рдкрдврд╝рдирд╛ рдЖрд╕рд╛рди рд╣реИ? рдЙрддреНрддрд░ рд╕реНрдкрд╖реНрдЯ рд╣реИред



рдСрдмреНрдЬреЗрдХреНрдЯ рдореЙрдбрд▓









XObject , XNode , рдФрд░ XContainer рдХрдХреНрд╖рд╛рдПрдВ рд╕рд╛рд░ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЙрдиреНрд╣реЗрдВ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддреЗред

XAttribute рд╡рд░реНрдЧ - XNode рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓рд╛, рдЕрд░реНрдерд╛рдд рдПрдХ рдиреЛрдб рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕рдВрдЧреНрд░рд╣ рдЖрдЗрдЯрдо рд╣реИ рдЬреЛ рдПрдХ рдХреБрдВрдЬреА-рдореВрд▓реНрдп рдЬреЛрдбрд╝реА рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред

XDocument рдФрд░ XElement рдХреНрд▓рд╛рд╕реЗрд╕ рдПрдХрдорд╛рддреНрд░ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ XNode рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдиреЛрдбреНрд╕ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред



XDocument



LINQ to XML API рдореЗрдВ, XML рдЯреНрд░реА рдпрд╛ рдЙрд╕рдХрд╛ рдЯреБрдХрдбрд╝рд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП XDocument рдмрдирд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред

XDocument document = new XDocument ();

Console .WriteLine(document.ToString());






рд╣рдореЗрдВ рдПрдХ рдЦрд╛рд▓реА рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддрд╛ рд╣реИред



XDocument рдореЗрдВ рдХреБрдЫ рднреА рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реИ, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рдЬреНрдЮрд╛рдкрди ( XDeclaration ), рдкреНрд░рдХрд╛рд░ рдирд┐рд░реНрдорд╛рдг ( XDocumentType ) рдпрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдирд┐рд░реНрджреЗрд╢ ( XProcessingInstruction ) рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред



рдЗрд╕рдореЗрдВ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдзрд┐рднрд╛рд░ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рд░ рддрд░реАрдХреЗ рд╣реИрдВ:

public static XDocument Load( Stream stream);

public static XDocument Load( string uri);

public static XDocument Load( TextReader textReader);

public static XDocument Load( XmlReader reader);

public static XDocument Load( Stream stream, LoadOptions options);

public static XDocument Load( string uri, LoadOptions options);

public static XDocument Load( TextReader textReader, LoadOptions options);

public static XDocument Load( XmlReader reader, LoadOptions options);






рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рднреА:

public void Save( Stream stream);

public void Save( string fileName);

public void Save( TextWriter textWriter);

public void Save( XmlWriter writer);

public void Save( Stream stream, SaveOptions options);

public void Save( string fileName, SaveOptions options);

public void Save( TextWriter textWriter, SaveOptions options);






рддрддреНрд╡ ( XElement ) рдореЗрдВ рд╕рдорд╛рди рд╡рд┐рдзрд┐рдпрд╛рдВ рд╣реИрдВред



рдореИрдВ XDocument рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рддрднреА рдХрд░рддрд╛ рд╣реВрдВ рдЬрдм рдореБрдЭреЗ рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдЬреНрдЮрд╛рдкрди рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдПрдХ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╣реЛрддрд╛ рд╣реИред



XDeclaration



XDeclaration рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕, рдЖрдкрдиреЗ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ рд╣реИ, рдЗрд╕рдореЗрдВ рдШреЛрд╖рдгрд╛рдПрдБ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХрдВрдкрд╛рдЗрд▓рд░ рдЖрдкрдХреЛ рдХрд┐рд╕реА рддрддреНрд╡ ( XElement ) рдореЗрдВ рдШреЛрд╖рдгрд╛рдПрдБ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЛрдИ рджреГрд╢реНрдп рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рджреЗрдЧрд╛ред

XDocument document = new XDocument (

new XDeclaration ( "1.0" , "UTF-8" , "yes" ));

Console .WriteLine(document.ToString());






рдпрд╣ рдХреЛрдб рднреА рдХрд┐рд╕реА рднреА рд▓рд╛рдЗрди рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрджрд┐ рдЖрдк рдбрд┐рдмрдЧрд░ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдШреЛрд╖рдгрд╛ рдЕрднреА рднреА рдЬреЛрдбрд╝реА рдЧрдИ рд╣реИ:







рдпрджрд┐ рдЖрдк XDocument рд╡рд░реНрдЧ рдХреЗ рд╕рд╣реЗрдЬреЗрдВ () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдШреЛрд╖рдгрд╛ рджрд┐рдЦрд╛рдИ рджреЗрдЧреАред



XElement



рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдПрдкреАрдЖрдИ рд╡рд╕реНрддреБред

рдЗрд╕рдХреЗ рдХрдИ рдбрд┐рдЬрд╝рд╛рдЗрдирд░ рд╣реИрдВ, рдЙрдирдореЗрдВ рд╕реЗ рджреЛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:



public XElement ( XName name, object content);

public XElement ( XName name, params object [] content);






рдкрд╣рд▓рд╛ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдорд╛рдорд▓рд╛ рд╣реИ рдЬрдм рдХрд┐рд╕реА рддрддреНрд╡ рдХреА рдХреЛрдИ рд╕рдВрддрд╛рди рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ рдФрд░ рд╣рдо рдХреЗрд╡рд▓ рдЙрд╕рдХрд╛ рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рджреВрд╕рд░рд╛ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ - рдмрдЪреНрдЪреЛрдВ рдХреЗ рд╕рд╛рде, рдЬреИрд╕реЗ рддрддреНрд╡, рдЧреБрдг, рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдирд┐рд░реНрджреЗрд╢, рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ ( XComment ), рдЖрджрд┐ред



рд╕рд░рд▓рддрдо рддрддреНрд╡ рдмрдирд╛рдПрдВ:

XElement element = new XElement ( "Element" , 777);

Console .WriteLine(element.ToString());

Console .WriteLine(( int )element);






рдкрд░рд┐рдгрд╛рдо:

< Element > 777 </ Element >

777






рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рддрддреНрд╡реЛрдВ рдХреА рдкреБрдирд░реНрдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕реНрдкрд╖реНрдЯ рдврд▓рд╛рдИ рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдФрд░ рднреА рдЖрд╕рд╛рди рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдЕрдкрдиреЗ рдореВрд▓реНрдп рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрддреНрд╡ рдХреЛ рдЙрд╕рдХреЗ рдореВрд▓ рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред XElement рд╕рднреА рд╕рд░рд▓ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рдХрд▓рд╛рдХрд╛рд░реЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддрд╛ рд╣реИред рдЕрдм, рд╡реИрд▓реНрдпреВ рдкреНрд░реЙрдкрд░реНрдЯреА рдХреА рднреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИред

рдЖрдк рдкреВрдЫрддреЗ рд╣реИрдВ, рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдПрдХреНрд╕рдиреЗрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдореИрдВ рдЗрд╕реЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ? рдФрд░ рдореИрдВ рдЖрдкрдХреЛ рдЙрддреНрддрд░ рджреВрдВрдЧрд╛: рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХреНрд╕рдирд╛рдо рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдбрд╛рд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, XName рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ, рдХреЗрд╡рд▓ рдПрдХ рдиреЗрдорд╕реНрдкреЗрд╕ ( XNamespace ) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рдеред



рдореИрдВ рд╡рд╕реНрддреБрдУрдВ рд╕реЗ XML рдмрдирд╛рдиреЗ рдХрд╛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛:

public sealed class Teacher

{

public Guid Id;

public string FirstName;

public string LastName;

}



IEnumerable < Teacher > teachers = new []

{

new Teacher () { Id = Guid .NewGuid(), FirstName = "" , LastName = "" },

new Teacher () { Id = Guid .NewGuid(), FirstName = "" , LastName = "" }

};



XElement elements = new XElement ( "Teachers" ,

teachers.Select(t => new XElement ( "Teacher" ,

new XAttribute ( "Id" , t.Id),

new XElement ( "FirstName" , t.FirstName),

new XElement ( "LastName" , t.LastName))));



Console .WriteLine(elements.ToString());






рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдорд╛рд░реЗ рдкрд╛рд╕:

< Teachers >

< Teacher Id ="80321d66-ee4b-4b55-ace8-3892b682d483" >

< FirstName > </ FirstName >

< LastName > </ LastName >

</ Teacher >

< Teacher Id ="33f58b19-1bbb-468f-acee-961edb63ce0b" >

< FirstName > </ FirstName >

< LastName > </ LastName >

</ Teacher >

</ Teachers >






XAttribute



рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдХрд╣рд╛ рдерд╛, рддрддреНрд╡ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреБрдВрдЬреА-рдореВрд▓реНрдп рдЬреЛрдбрд╝реА рд╣реИред рдХрд┐рд╕реА рддрддреНрд╡ рдХреЛ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдмрдирд╛рдирд╛ рдФрд░ рдЬреЛрдбрд╝рдирд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдХрд╛рд░реНрдп рд╣реИ:

XAttribute attribute = new XAttribute ( "Id" , Guid .NewGuid());

XElement element = new XElement ( "Teachers" );

element.Add(attribute);

Console .WriteLine(element.ToString());






рдпрд╛ рддреЛ:

XElement element = new XElement ( "Teachers" ,

new XAttribute ( "Id" , Guid .NewGuid()));

Console .WriteLine(element.ToString());






рдкрд░рд┐рдгрд╛рдо рд╕рдорд╛рди рд╣реИ:

< Teachers Id ="713c6cbf-f698-42fd-b5fc-74415b93d824" />







XComment



рдЯрд┐рдкреНрдкрдгреА рдмрдирд╛рдиреЗ рдФрд░ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рднреА рдХреЛрдИ рдХрдард┐рдирд╛рдИ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ:

XElement teacherElement = new XElement ( "Teacher" ,

new XComment ( "Teacher element" ));

Console .WriteLine(teacherElement.ToString());






рдкрд░рд┐рдгрд╛рдо:

< Teacher >

<!--Teacher element-->

</ Teacher >








рдирд┐рд╖реНрдХрд░реНрд╖



рдЗрд╕ рд╕реНрддрд░ рдкрд░, рдореИрдВ рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рд╣рд╛рдВ, рдореИрдВрдиреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкреНрд░рдХрд╛рд░ рдФрд░ рдЕрдиреНрдп рдореЙрдбрд▓ рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЬреНрдЮрд╛рди рд╕рд░рд▓ рдФрд░ рдЬрдЯрд┐рд▓ рджреЛрдиреЛрдВ XML рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ред



рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдПрдХ XML рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдорд╛рд░реНрдЧ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВред



All Articles