21
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
XSLT Newbie Câu hỏi: Vui lòng điền vào trống trong đoạn mã C# bên dưới:
public static string TransformXMLToHTML(string inputXml, string xsltString) { // insert code here to apply the transform specified by xsltString to inputXml // and return the resultant HTML string. // You may assume that the xslt output type is HTML. }Thanks!
Đã hỏi ngày 22 tháng 11 năm 2009 lúc 9:48Nov 22, 2009 at 9:48
Shaul Behrshaul BehrShaul Behr
358K69 Huy hiệu vàng247 Huy hiệu bạc377 Huy hiệu đồng69 gold badges247 silver badges377 bronze badges
0
Bạn nghĩ thế nào về:
public static string TransformXMLToHTML(string inputXml, string xsltString) { XslCompiledTransform transform = new XslCompiledTransform(); using(XmlReader reader = XmlReader.Create(new StringReader(xsltString))) { transform.Load(reader); } StringWriter results = new StringWriter(); using(XmlReader reader = XmlReader.Create(new StringReader(inputXml))) { transform.Transform(reader, null, results); } return results.ToString(); }Lưu ý rằng lý tưởng nhất là bạn sẽ lưu trữ và sử dụng lại XslCompiledTransform - hoặc có thể sử dụng XslTransform thay thế (mặc dù nó được đánh dấu là không dùng nữa).
Đã trả lời ngày 22 tháng 11 năm 2009 lúc 9:59Nov 22, 2009 at 9:59
Marc Gravellmarc GravellMarc Gravell
994K258 Huy hiệu vàng2511 Huy hiệu bạc2854 Huy hiệu đồng258 gold badges2511 silver badges2854 bronze badges
3
Chỉ để giải trí, một phiên bản ít thanh lịch hơn một chút thực hiện bộ nhớ đệm được đề xuất bởi Marc:
public static string TransformXMLToHTML(string inputXml, string xsltString) { XslCompiledTransform transform = GetAndCacheTransform(xsltString); StringWriter results = new StringWriter(); using (XmlReader reader = XmlReader.Create(new StringReader(inputXml))) { transform.Transform(reader, null, results); } return results.ToString(); } private static Dictionary<String, XslCompiledTransform> cachedTransforms = new Dictionary<string, XslCompiledTransform>(); private static XslCompiledTransform GetAndCacheTransform(String xslt) { XslCompiledTransform transform; if (!cachedTransforms.TryGetValue(xslt, out transform)) { transform = new XslCompiledTransform(); using (XmlReader reader = XmlReader.Create(new StringReader(xslt))) { transform.Load(reader); } cachedTransforms.Add(xslt, transform); } return transform; }Đã trả lời ngày 22 tháng 11 năm 2009 lúc 10:13Nov 22, 2009 at 10:13
2
XSLT (biến đổi ngôn ngữ biểu định kiểu mở rộng) là một ngôn ngữ ban đầu được thiết kế để chuyển đổi các tài liệu XML thành các tài liệu XML khác hoặc các định dạng khác như HTML cho các trang web, văn bản đơn giản hoặc định dạng XSL, sau đó có thể được chuyển đổi sang các định dạng khác, chẳng hạn như PDF , PostScript và PNG.
Nghiên cứu ví dụ: Làm thế nào để chuyển đổi XML thành XHTML bằng XSLT?
Các chi tiết của ví dụ này sẽ được giải thích trong chương tiếp theo.
Tuyên bố theo kiểu chính xác
Phần tử gốc tuyên bố tài liệu là một bảng kiểu XSL là hoặc. and are completely synonymous and either can be used!
Lưu ý: Và hoàn toàn đồng nghĩa và có thể được sử dụng!
or:
& nbsp; & nbsp; & nbsp; Bộ sưu tập CD của tôi & NBSP; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Tiêu đề & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Nghệ sĩ & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
Xem "cdcatalog.xsl"
Liên kết Bảng kiểu XSL với tài liệu XML
Thêm tham chiếu bảng kiểu XSL vào tài liệu XML của bạn ("cdcatalog.xml"):transform the following XML document ("cdcatalog.xml") into XHTML:
Thêm tham chiếu bảng kiểu XSL vào tài liệu XML của bạn ("cdcatalog.xml"):
Empire Burlesque
Bob Dylan
USA
Columbia
10.90
1985
.
.
Xem các tệp XML trong trình duyệt: Mở tệp XML (nhấp vào liên kết bên dưới) - Tài liệu XML sẽ được hiển thị với các phần tử gốc và các phần tử con được mã hóa màu. Thông thường, có một mũi tên hoặc dấu cộng/trừ ở bên trái của các phần tử có thể được nhấp để mở rộng hoặc thu gọn cấu trúc phần tử. Mẹo: Để xem nguồn XML RAW, nhấp chuột phải vào tệp XML và chọn "Xem nguồn trang"! Open the XML file (click on the link below) - The XML document will be displayed with color-coded root and child elements. Often, there is an arrow or plus/minus sign to the left of the elements that can be clicked to expand or collapse the element structure. Tip: To view the raw XML source, right-click in XML file and select "View Page Source"!
Xem "cdcatalog.xml"
Tạo một bảng kiểu XSL
Sau đó, bạn tạo một bảng kiểu XSL ("cdcatalog.xsl") với một mẫu chuyển đổi:
& nbsp; & nbsp; & nbsp; Bộ sưu tập CD của tôi & NBSP; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Tiêu đề & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Nghệ sĩ & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
My CD Collection
Xem "cdcatalog.xsl"
Liên kết Bảng kiểu XSL với tài liệu XML
Thêm tham chiếu bảng kiểu XSL vào tài liệu XML của bạn ("cdcatalog.xml"):
& nbsp; & nbsp; & nbsp; & nbsp; Đế chế Burlesque & nbsp; & nbsp; & nbsp; Bob Dylan & nbsp; & nbsp; & nbsp; Hoa Kỳ & nbsp; & nbsp; & nbsp; Columbia & nbsp; & nbsp; & nbsp; 10,90 & nbsp; & nbsp; & nbsp; 1985 & NBSP; . .
Nếu bạn có trình duyệt tuân thủ XSLT, nó sẽ chuyển đổi XML của bạn thành XHTML một cách độc đáo.
Empire Burlesque
Bob
Dylan
USA
Columbia
10.90
1985
.
.
Xem kết quảtransform your XML into XHTML.
Các chi tiết của ví dụ trên sẽ được giải thích trong các chương tiếp theo.
Làm thế nào XML được chuyển đổi thành định dạng HTML bằng XSLT?