LINQ to XML은 xml을 읽고 쓰는 보다 편리한 방법을 제공합니다. 이전 기사의 댓글에서 친구들은 항상 언급했는데 linq to xml을 사용하는 것은 어떻습니까? 이제 linq to xml이 나타날 차례입니다.
.Net의 System.Xml.Linq 네임스페이스는 linq to xml을 지원합니다. 이 네임스페이스의 XDocument, XElement, XText 및 XAttribute는 xml 문서를 읽고 쓰기 위한 주요 메서드를 제공합니다.
1. xml을 작성하려면 linq를 사용하세요.
XDocument의 생성자를 사용하여 Xml 문서 객체를 생성합니다. XElement 개체를 사용하여 xml 노드 요소를 생성합니다. , XAttribute 생성자를 사용하여 요소의 특성을 생성할 수 있습니다. XText 생성자를 사용하여 노드 내에서 텍스트를 생성합니다.
다음 예제 코드:
class Program { static void Main(string[] args) { var xDoc = new XDocument(new XElement( "root", new XElement("dog", new XText("dog said black is a beautify color"), new XAttribute("color", "black")), new XElement("cat"), new XElement("pig", "pig is great"))); //xDoc输出xml的encoding是系统默认编码,对于简体中文操作系统是gb2312 //默认是缩进格式化的xml,而无须格式化设置 xDoc.Save(Console.Out); Console.Read(); } }
위 코드는 다음 Xml을 출력합니다.
<?xml version="1.0" encoding="gb2312"?> <root> <dog color="black">dog said black is a beautify color</dog> <cat /> <pig>pig is great</pig> </root>
linq to xml이 XmlDocument 및 XmlWriter보다 훨씬 편리하다는 것을 알 수 있습니다.
2. xml을 읽으려면 linq를 사용하세요.
Linq는 컬렉션에서 가져온 것입니다. linq에서 xml로의 컬렉션인 쿼리 개체는 XElement의 Elements(), Elements(문자열 이름) 및 Descendants, DescendantsAndSelf, Ancestors 및 AncestorsAndSelf의 여러 오버로드된 메서드를 통해 가져옵니다.
XElement 컬렉션을 얻은 후 XElement의 Attribute(문자열 이름) 메서드를 통해 요소의 속성 값을 얻을 수 있고 XElement의 Value 속성을 통해 노드의 텍스트 값을 얻을 수 있습니다. linq를 사용하여 쉽게 쿼리하고 필터링할 수 있습니다.
은 위 예에서 여전히 xml입니다. 다음 코드와 같이 루트의 모든 바이트 포인트를 읽고 인쇄해야 합니다. 🎜>
class Program { static void Main(string[] args) { var xDoc = new XDocument(new XElement( "root", new XElement("dog", new XText("dog said black is a beautify color"), new XAttribute("color", "black")), new XElement("cat"), new XElement("pig", "pig is great"))); //xDoc输出xml的encoding是系统默认编码,对于简体中文操作系统是gb2312 //默认是缩进格式化的xml,而无须格式化设置 xDoc.Save(Console.Out); Console.WriteLine(); var query = from item in xDoc.Element( "root").Elements() select new { TypeName = item.Name, Saying = item.Value, Color = item.Attribute("color") == null?(string)null:item.Attribute("color").Value }; foreach (var item in query) { Console.WriteLine("{0} 's color is {1},{0} said {2}",item.TypeName,item.Color??"Unknown",item.Saying??"nothing"); } Console.Read(); } }
신청 요구 사항: RSS 읽기 블로그 정보
구현 포인트: Load static 메소드를 통해 Xml을 로드합니다. C#의 발전으로 XML을 읽고 쓰는 것이 더욱 쉬워졌습니다.
C# 처리 관련 에세이 3. Linq를 사용하여 XML에 액세스
4. XmlScheme을 통해 고정 형식 xml 문서 정의
5.Xml 직렬화 또는 역직렬화 클래스
6. Xml 노드 찾기를 통해
7. Xml 형식 변환을 통해