Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 13 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
13
Dung lượng
2,23 MB
Nội dung
Trinh Minh Cuong Microsoft
Vietnam
5 phút với XML và XSLT
LINQ to XML
So sánh LINQ với các thư viện XML khác
5 phút với XML và XSLT
Một số định nghĩa
XSLT: Extensible Stylesheet Language
Transformations (XSLT) is an XML-based
language used for the transformation of XML
documents into other XML or "human-readable"
documents.
Xpath is a language for selecting nodes from
an XML document. In addition, XPath may be
used to compute values (strings, numbers, or
boolean values) from the content of an XML
document.
XSLT tutorial :
http://www.zvon.org/xxl/XSLTutorial/Output/co
ntents.html
XSLT Demo #1
XSLT Demo #2: for-each
Câu hỏi
XSLT có template-matching, for-each, if,
sum … có thể viết thêm hàm cho XSLT bằng
C#.net
Làm thế nào thực hiện lệnh group by, join
trên XML như trong SQL?
XSLT và XLINQ có những điểm mạnh và yếu
khác nhau.
Dùng XSLT khi cần biến đổi dữ liệu từ cấu
trúc A -> B.
Dùng XLINQ khi cần truy vấn, tổng hợp, kết
hợp dữ liệu.
Cú pháp XLINQ đơn giản, dễ học hơn so với
XSLT, Xpath.
Câu hỏi
Tại sao Microsoft không tạo ra một
namespace System.LINQ
System.LINQ.xml
System.LINQ.sql
System.LINQ.dataset
System.LINQ.entity
Mà lại tạo ra:
System.Linq cho LINQto Objects
System.Data.Linq cho DLINQ
System.Xml.Linq cho XLINQ
Class hierarchy của System.Xml.Linq
Cú pháp tạo dữ liệuXML trong LINQ đơn giản hơn
Xem ví dụ so sánh CreateXMLbyDOM với CreateXMLbyLINQ
Với VB, có thể gán thẳng chuỗi XML vào biến kiểu XElement
[...]... AveragePriceInEachCountry() { return from cd in rootElement.Elements("CD") group cd by cd.Element("COUNTRY").Value into g select new XElement("AveragePricePerCountry", new XAttribute("Country", g.Key), new XAttribute("AveragePrice", g.Average(cd => Convert.ToDouble(cd.Element("PRICE").Value)))); } Thay đổi dữ liệu trong XML public void UpdatePriceOfCD(string CDTitle, double new_price) { IEnumerable result =... SelectCDPriceHigherThan(double price) { return from cd in rootElement.Elements("CD") where (Convert.ToDouble(cd.Element("PRICE").Value) > price) select cd; } Group by public IEnumerable GroupCDByCountry() { return from cd in rootElement.Elements("CD") group cd by cd.Element("COUNTRY").Value into g select new GroupByObj (g.Key,g); } Group by and Aggregation public IEnumerable AveragePriceInEachCountry()... IEnumerable result = from cd in rootElement.Elements("CD") where cd.Element("TITLE").Value.Equals(CDTitle) select cd; foreach (XElement cd in result) { cd.SetElementValue("PRICE", new_price.ToString()); //Update price } foreach (XElement cd in result) { Console.WriteLine("{0} has new price is {1}", cd.Element("TITLE").Value, cd.Element("PRICE").Value); } } . System .LINQ
System .LINQ. xml
System .LINQ. sql
System .LINQ. dataset
System .LINQ. entity
Mà lại tạo ra:
System .Linq cho LINQ to Objects
System.Data .Linq cho DLINQ
System .Xml .Linq. DLINQ
System .Xml .Linq cho XLINQ
Class hierarchy của System .Xml .Linq
Cú pháp tạo dữ liệu XML trong LINQ đơn giản hơn
Xem ví dụ so sánh CreateXMLbyDOM với CreateXMLbyLINQ
Với