วิธีการใช้การแปลง XSL XML สำหรับการส่งกระแสข้อมูลโดยใช้ Visual c#

ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ

ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:307494
สำหรับรุ่น Microsoft Visual Basic .NET ของบทความนี้ ดู300934.
สำหรับรุ่น Microsoft Visual c ++.NET ของบทความนี้ ดู815655.

บทความนี้อ้างถึง namespaces ไลบรารีคลาสของ Microsoft .NET Framework ต่อไปนี้:
  • System.Xml
  • System.Xml.Xsl
  • System.Xml.XPath
  • System.IO

ในกรณีนี้

สรุป
บทความที่มีการทีละขั้นตอนนี้แสดงวิธีการใช้ภาษาแปลง Extensible Stylesheets ภาษา (XSL) (XSLT) กับเอกสาร Extensible Markup ภาษา (XML) โดยใช้การXslTransformคลาเพื่อสร้างเอกสาร XML ใหม่ xsl มีการใช้ XML ภาษาที่มีการออกแบบมาเพื่อแปลงเอกสาร XML ลงในเอกสาร XML อื่นหรือเอกสาร XML ลงในอื่น ๆ อย่างเป็นระบบเอกสาร

ความต้องการ

รายการต่อไปนี้แสดงฮาร์ดแวร์ที่แนะนำ ซอฟต์แวร์ โครงสร้างพื้นฐานของเครือข่าย และ service pack ที่คุณต้องการ:
  • Microsoft Visual Studio .NET หรือ Microsoft Visual Studio 2005
  • Microsoft Visual Studio .NET ซอฟต์แวร์พัฒนา Kit (SDK) QuickStarts
บทความนี้อนุมานว่า คุณไม่คุ้นเคยกับหัวข้อต่อไปนี้:
  • คำศัพท์ xml
  • สร้างและการอ่านแฟ้ม XML
  • ไวยากรณ์ภาษาเส้นทาง xml (XPath)
  • xsl

วิธีการใช้การแปลง XSL

ตัวอย่างนี้ใช้ Books.xml และ Books.xsl ในการตั้งชื่อแฟ้มที่สอง คุณสามารถสร้างแฟ้มของคุณเอง Books.xml และ Books.xsl หรือใช้แฟ้มตัวอย่างที่มีอยู่ QuickStarts Kit ในการพัฒนาซอฟต์แวร์.NET (SDK) คุณต้องคัดลอกแฟ้ม Books.xml และ Books.xsl โฟลเดอร์ \Bin\Debug ที่อยู่ภายใต้โฟลเดอร์ที่คุณสร้างโครงการนี้ แฟ้มเหล่านี้สามารถพบได้ในโฟลเดอร์ต่อไปนี้:
...NET\FrameworkSDK\Samples\QuickStart\Howto\Samples\Xml\Transformxml\Cs visual Studio \Program Files\Microsoft
  1. สร้างโปรแกรมประยุกต์ของคอนโซลใหม่ใน Visual c#
  2. ตรวจสอบให้แน่ใจว่า โครงการที่ประกอบด้วยการอ้างอิงไปยังSystem.Xmlnamespace และเพิ่มการอ้างอิงถ้าคุณไม่
  3. ใช้แบบการใช้คำชี้แจงสิทธิ์ในการXML,xpathและXslnamespaces ดังนั้นคุณไม่จำเป็นต้องกำหนดคุณสมบัติ declarations ใน namespaces เหล่านั้นในภายหลังในรหัสของคุณ คุณต้องใช้การการใช้คำสั่งก่อนที่จะ declarations อื่น ๆ:
    using System.Xml;using System.Xml.Xsl;using System.Xml.XPath;					
  4. กำหนดตัวแปรที่เหมาะสม ประกาศเป็นXPathDocumentวัตถุที่จะเก็บเอกสาร XML และมีXslTransformวัตถุการแปลงเอกสาร XML เพิ่มรหัสการรายงานในกระบวนการหลักของ Module1:
    XslTransform myXslTransform;  XPathDocument myXPathDocument;					
  5. เติมข้อมูลเป็นXPathDocumentวัตถุที่ มีแฟ้มตัวอย่าง Books.xml กระบวนการXPathDocumentคลาแสดงแคอย่างรวดเร็ว และ เกี่ยวกับประสิทธิภาพการทำงานกับเอกสาร XML ของกระบวนการ โดยใช้ XSLT กระบวนการXPathDocumentคลาคล้ายกับข้อ XML เอกสารวัตถุแบบจำลอง (DOM) แต่รับการออกเป็นอย่างยิ่งแบบสำหรับการประมวลผล XSLT และรูปแบบข้อมูล XPath:
    myXPathDocument = new XPathDocument ("books.xml");					
  6. สร้างใหม่XslTransformวัตถุ กระบวนการXslTransformคลาสที่ไม่มีตัวประมวลผล XSLT ที่ใช้ XSL คำแนะนำของรุ่น 1.0 แปลง (XSLT):
    myXslTransform = new XslTransform();					
  7. ใช้แบบการโหลดวิธีการที่โหลดการXslTransformวัตถุ ด้วยสไตล์ชี แผ่นลักษณะนี้แปลงรายละเอียดของเอกสาร Books.xsl ลงในรายการนานาชาติมาตรฐานตามบัญชีหมายเลข (ISBN) แบบธรรมดาของสมุดบัญชี:
    myXslTransform.Load("books.xsl");					
  8. สร้างข้อXmlTextWriterคลาสที่ มีใหม่ transformed XML ชื่อแฟ้ม เรียกการแปลงวิธีการเริ่มต้นการแปลง
    XmlTextWriter writer = new XmlTextWriter("ISBNBooks.xml",System.Text.Encoding.UTF8);myXslTransform.Transform(myXPathDocument,null, writer); writer.Flush();writer.Close();					
  9. อีกวิธีหนึ่งคือ คุณสามารถส่งเอกสาร XML transformed ไปXmlReader,กระแสข้อมูลหรือtextwriterคลาสที่ ตัวอย่างรหัสต่อไปนี้ส่งการแปลง XML ไปยังอินสแตนซ์ของการStringWriter(การอนุพันธ์ของtextwriter), ซึ่งเขียนการแปลงไปยังหน้าต่างคอนโซลในกลับ
    System.IO.StringWriter stWrite = new System.IO.StringWriter();myXslTransform.Transform(myXPathDocument, null, stWrite);Console.WriteLine(stWrite.ToString);Console.ReadLine();						
    หมายเหตุ:: การแสดงรายการรหัสเสร็จสมบูรณ์ที่ใช้รหัสก่อนหน้านี้แทนของรหัสในขั้นตอนที่ 8
  10. สร้าง และเรียกใช้โครงการของคุณ ผลลัพธ์ของการแปลงที่แสดงในหน้าต่างคอนโซลเป็นดังนี้:
       <root><bookstore><book ISBN="1-861003-11-0"><price>8.99</price>			</book><book ISBN="0-201-63361-2"><price>11.99</price>			</book><book ISBN="1-861001-57-6"><price>9.99</price>			</book></bookstore></root>					

ตัวอย่างของรหัสการทำให้เสร็จสมบูรณ์

using System;using System.Xml;using System.Xml.Xsl;using System.Xml.XPath; using System.IO;namespace XSLTransformfromXPath{    /// Summary description for Class1.    class Class1    {        static void Main(string[] args)        {            XslTransform myXslTransform;              XPathDocument myXPathDocument = new XPathDocument ("books.xml");             myXslTransform = new XslTransform();             myXslTransform.Load("books.xsl");   		            XmlTextWriter writer = new XmlTextWriter("ISBNBooks.xml",System.Text.Encoding.UTF8);            myXslTransform.Transform(myXPathDocument,null, writer);             writer.Flush();            writer.Close();            System.IO.StringWriter stWrite = new System.IO.StringWriter();            myXslTransform.Transform(myXPathDocument, null, stWrite);            Console.WriteLine(stWrite.ToString());            Console.ReadLine();         }    }}				

อ้างอิง:

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการXslTransformคลาส เยี่ยมชมเว็บไซต์ต่อไปนี้ของ Microsoft:สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการXslTransformคลาสด้วยXslTransformวัตถุ เยี่ยมชมเว็บไซต์ต่อไปนี้ของ Microsoft:สำหรับการเปรียบเทียบ practical XSLT และ.NET หน้า Server Active แวะไปที่เว็บไซต์ต่อไปนี้ของ Microsoft:
การเปรียบเทียบ Practical XSLT และ ASP.NET
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ dnexxml/html/xml02192001.asp
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ XML ใน.NET แวะไปที่เว็บไซต์ต่อไปนี้ของ Microsoft:
XML ใน.NET: คลาส XML Framework .NET และข้อเสนอ c# แบบธรรมดา Scalable ข้อมูล Manipulation
http://msdn.microsoft.com/msdnmag/issues/01/01/xml/default.aspx

คำเตือน: บทความนี้ได้รับการแปลโดยอัตโนมัติ

คุณสมบัติ

รหัสบทความ: 307494 - การตรวจสอบครั้งสุดท้าย: 10/19/2010 00:47:00 - ฉบับแก้ไข: 2.0

Microsoft Visual C# 2005, Microsoft Visual C# .NET 2002 Standard Edition

  • kbhowtomaster kbio kbsample kbmt KB307494 KbMtth
คำติชม