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

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 307494 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

บทความที่มีการทีละขั้นตอนนี้แสดงวิธีการใช้ภาษาแปลง 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
http://msdn.microsoft.com/library/dotnet/ cpref/frlrfsystemxmlxslxsltransformclasstopic.htm
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการXslTransformคลาสด้วยXslTransformวัตถุ เยี่ยมชมเว็บไซต์ต่อไปนี้ของ Microsoft:
คลาสของ XslTransform ใช้ตัวประมวลผล XSLT
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ cpguide/html/cpconxsltransformclassimplementsxsltprocessor.asp?frame=true
สำหรับการเปรียบเทียบ 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

คุณสมบัติ

หมายเลขบทความ (Article ID): 307494 - รีวิวครั้งสุดท้าย: 19 ตุลาคม 2553 - Revision: 2.0
ใช้กับ
  • Microsoft Visual C# 2005
  • Microsoft Visual C# .NET 2002 Standard Edition
Keywords: 
kbhowtomaster kbio kbsample kbmt KB307494 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:307494

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com