Làm th? nào đ? s? d?ng ASP.NET ho?c Visual Basic.NET đ? bi?n đ?i XML đ? đ?nh d?ng văn b?n phong phú cho Microsoft Word 2002

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 311461 - Xem s?n ph?m mà bài này áp d?ng vào.
Bung t?t c? | Thu g?n t?t c?

? Trang này

TÓM T?T

S? d?ng này hư?ng d?n t?ng bư?c đ? t?o ra đ?nh d?ng văn b?n phong phú (RTF) t? Extensible Markup Language (XML) b?ng cách s? d?ng Visual Basic.NET.

Đ?nh d?ng văn b?n phong phú là căn c? văn b?n đ?nh d?ng m? hóa đ?nh d?ng văn b?n, b? trí tài li?u, và đ? h?a. Nó thư?ng đư?c dùng v?i Microsoft Word. B?i v? RTF là căn c? văn b?n, nó có th? đư?c d? dàng t?o ra v?i m?. N?u b?n có d? li?u XML b?n mu?n hi?n th? trong Word như m?t c?a hàng/danh sách ho?c mail merge lo?i tài li?u, sau đó chuy?n đ?i d? li?u XML thành m?t d?ng su?i RTF có th? là m?t gi?i pháp l? tư?ng T?ng em. Và trong th?c t?, n?u b?n đang phát tri?n m?t gi?i pháp mà b?n t?o ra tài li?u trên máy ch? Web, sau đó t?o ra nh?ng tài li?u b?ng cách s? d?ng m?t văn b?n d?a trên đ?nh d?ng, ch?ng h?n như HTML ho?c RTF, đư?c ưa thích hơn b?ng cách s? d?ng phía máy ch? t? đ?ng hóa c?a Word.

Bài vi?t này cung c?p m?u m?, v?i t?ng bư?c hư?ng d?n, đ? bi?n đ?i XML thành RTF trưng bày trong Word b?ng cách s? d?ng m?t vài phương pháp ti?p c?n:
  • Lưu RTF vào m?t t?p tin và m? nó trong Word.
  • Chuy?n giao RTF Word b?ng cách s? d?ng các c?a s? B?ng t?m.
  • D?ng RTF Word đư?c lưu tr? trong Microsoft Internet Thám hi?m t? m?t ASP.NET Web ?ng d?ng.

Đ?c đi?m k? thu?t d?ng th?c đ?nh d?ng phong phú

Đ?c đi?m k? thu?t giàu văn b?n đ?nh d?ng (RTF) là m?t công đ?c đi?m k? thu?t đ? t?o ra t?p tin văn b?n RTF tương thích. B?n có th? s? d?ng các đ?c đi?m k? thu?t t?i các nhà phát tri?n Microsoft sau trong tài li?u Trang Web m?ng (MSDN) là m?t tài nguyên đ? giúp b?n xây d?ng c?a riêng b?n file RTF. Tuy nhiên, đ?c đi?m k? thu?t đư?c cung c?p "như-là", và không đư?c h? tr? đư?c cung c?p b?i Microsoft h? tr? k? thu?t cho đ?c đi?m k? thu?t. Nh?p vào các liên k?t sau Đ?i v?i các chi ti?t k? thu?t RTF:
Rich Text Format đ?c đi?m k? thu?t, phiên b?n 1.6

Rich Text Format đ?c đi?m k? thu?t, phiên b?n 1,7

Chuy?n đ?i XML đ? RTF

B?n có th? h?p l? XML t? b?t c? ngu?n nào và chuy?n đ?i nó đ? RTF. Th? t?c sau đây minh ho? làm th? nào b?n có th? bi?n đ?i tùy ch?nh XML thành RTF ho?c đư?c lưu vào m?t t?p ho?c sao chép vào b?ng t?m.
  1. T?o ra m?t m?i Visual Basic.NET ?ng d?ng Windows. Form1 đư?c t?o ra cho b?n.
  2. Thêm hai nút đi?u khi?n cho Form1.
  3. Trên các Xem tr?nh đơn, nh?p vào Mã.
  4. Chèn sau ? trên cùng c?a c?a s? m? trư?c khi vi?c th?c hi?n Form1 l?p:
    Imports System.Xml
    Imports System.Xml.Xsl
    Imports System.IO
  5. Thêm m? sau vào vi?c th?c hi?n Form1 l?p (trư?c khi K?t thúc l?p):
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Button1.Text = "To File"
            Button2.Text = "To Clipboard"
    
        End Sub
    
        Private Sub ButtonsClick(ByVal sender As System.Object, ByVal e As System.EventArgs) _
            Handles Button1.Click, Button2.Click
    
            Dim sPath As String = Directory.GetParent(Directory.GetCurrentDirectory()).ToString
    
            ' Open the XML file.
            Dim xmlDoc As New XmlDocument()
            xmlDoc.Load(sPath & "\Dictionary.xml")
    
            ' Open the XSL file.
            Dim xslDoc As New XslTransform()
            xslDoc.Load(sPath & "\Dictionary.xslt")
    
            Select Case sender.name
                Case "Button1"
                    ' Transform the XSL and save it to file.
                    Dim TWrtr As New XmlTextWriter(sPath & "\Dictionary.RTF", System.Text.Encoding.Default)
                    xslDoc.Transform(xmlDoc, Nothing, TWrtr, Nothing) 
                    TWrtr.Close()
                    MsgBox("Transformed RTF saved to " & sPath & "\Dictionary.RTF")
                Case "Button2"
                    ' Transform the XSL and copy it to the clipboard.
                    Dim SWrtr As New StringWriter()
                    xslDoc.Transform(xmlDoc, Nothing, SWrtr, Nothing)
                    Dim datObj As New DataObject(DataFormats.Rtf, SWrtr)
                    Clipboard.SetDataObject(datObj)
                    SWrtr.Close()
                    MsgBox("Transformed RTF copied to the clipboard.")
            End Select
    
        End Sub
  6. Thêm m?t t?p XML cho d? án c?a b?n:
    1. Trên các Dự án tr?nh đơn, nh?p vào Thêm m?c m?i.
    2. T? danh sách m?u, nh?p vào T?p tin XML.
    3. G? tên Dictionary.xml và sau đó b?m M?.
    4. G?n ti?p sau các n?i dung c?a Dictionary.xml:
      <Dictionary>
        <Entries>
          <Entry>
            <Word Type="1">Energetic</Word>
            <Definition>Having, exerting, or displaying energy</Definition>
          </Entry>
          <Entry>
            <Word Type="1">Happy</Word>
            <Definition>Enjoying, displaying, or characterized by pleasure or joy</Definition>
          </Entry>
          <Entry>
            <Word Type="2">Emotion</Word>
            <Definition>A complex, strong subjective response</Definition>
          </Entry>
        </Entries>
      </Dictionary> 
  7. Thêm t?p tin XSLT vào d? án c?a b?n:
    1. Trên các Dự án tr?nh đơn, nh?p vào Thêm m?c m?i.
    2. T? danh sách m?u, nh?p vào XSLT File.
    3. G? tên Dictionary.XSLTsau đó b?m M?.
    4. Thay th? các n?i dung c?a Dictionary.xslt v?i các sau:
       
      <?xml version="1.0" encoding="UTF-8" ?>
      <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      
      	<xsl:output method="text"/>
      	<xsl:template match="/">
      
      	<xsl:text>{\rtf1</xsl:text>
      
      	<xsl:for-each select="Dictionary/Entries/Entry">
      
      		<xsl:text>\par\b </xsl:text>
      		<xsl:value-of select="Word"/>
      		<xsl:text>\b0\i  </xsl:text> 
      		<xsl:if test="Word[@Type='1']">adj.</xsl:if>
      		<xsl:if test="Word[@Type='2']">n.</xsl:if>
      		<xsl:text>\i0\par </xsl:text>
      		<xsl:value-of select="Definition"/>
      		<xsl:text>\par</xsl:text>
      	</xsl:for-each>
      
      	<xsl:text>}</xsl:text>
      
      	</xsl:template>
      	
      </xsl:stylesheet>  
  8. Nh?n F5 đ? xây d?ng và ch?y chương tr?nh.
  9. Nh?p vào Vào t?p tin Lưu XML chuy?n vào m?t t?p tin (Dictionary.rtf). B?n có th? m? RTF file trong Word đ? ki?m tra các k?t qu? c?a các chuy?n đ?i.
  10. Nh?p vào Vào Clipboard sao chép XML chuy?n sang b?ng t?m Windows. B?n có th? sau đó dán n?i dung c?a b?ng t?m vào m?t tài li?u m?i ho?c hi?n t?i t? đ? xem các k?t qu?.

Chuy?n đ?i m?t t?p d? li?u vào RTF

Visual Basic.NET cho phép b?n d? dàng làm bi?n đ?i trên datasets. Th? t?c này cho b?n th?y làm th? nào b?n có th? m?t d? li?u có liên quan t? các m?u Northwind cơ s? d? li?u và chuy?n đ?i nó đ? RTF. Thaûo bi?n đ?i đư?c ch?ng minh: m?t tài li?u RTF đơn gi?n danh sách khách hàng thông tin liên l?c và m?t tài li?u RTF hơi ph?c t?p s? hi?n th? Th? t? thông tin cho khách hàng trong m?t đ?nh d?ng mail merge-lo?i.
  1. B?t đ?u m?t m?i Visual Basic ASP.NET Web ?ng d?ng và lưu nó http://localhost/RTFDemo.

    WebForm1 đư?c t?o ra cho b?n.
  2. Thêm hai Nút đi?u khi?n đ? WebForm1.
  3. Trên các Xem tr?nh đơn, nh?p vào Mã.
  4. Thêm m? sau đây đ? các Page_Load ch?c năng:
            Button1.Text = "View Contact Information"
            Button2.Text = "View Customer Orders"
  5. Thêm các ch?c năng sau đây đ? các WebForm1 l?p h?c.

    LƯU ?: M? sau đây gi? đ?nh b?n có máy ch? SQL đư?c cài đ?t trên các localhost. N?u b?n có th? s? d?ng m?t máy tính khác, thay đ?i tài kho?n c?a ngu?n d? li?u k?t n?i c?a chu?i cho phù h?p.
        Private Sub ButtonsClick(ByVal sender As System.Object, ByVal e As System.EventArgs) _
                Handles Button1.Click, Button2.Click
    
            ' Connect to the data source.
            Dim nwindConn As SqlConnection = New SqlConnection( _
                "Data Source=localhost;Initial Catalog=Northwind;Integrated Security=SSPI")
            nwindConn.Open()
    
            ' Build a dataset based on whether you requested to view a list of 
            ' orders or a list of contacts.
            Dim ds As DataSet
            Dim sXSL As String
            Select Case (sender.id)
    
                Case "Button1"
    
                    ds = New DataSet("Contacts")
                    Dim ContactsDA As SqlDataAdapter = New SqlDataAdapter("SELECT * FROM Customers", nwindConn)
                    ContactsDA.Fill(ds, "Customers")
                    ' XSLT to use for transforming this dataset.
                    sXSL = "Contacts.xslt"  
    
                Case "Button2"
    
                    ds = New DataSet("CustomerOrders")
    
                    Dim custDA As SqlDataAdapter = New SqlDataAdapter("SELECT CustomerID, CompanyName, " & _
                        "Address, City, Region, PostalCode, Country FROM Customers", nwindConn)
                    custDA.Fill(ds, "Customers")
    
                    Dim ordersDA As SqlDataAdapter = New SqlDataAdapter("SELECT OrderID, CustomerID, Freight " & _
                        "FROM Orders", nwindConn)
                    ordersDA.Fill(ds, "Orders")
    
                    Dim ordersdetailDA As SqlDataAdapter = New SqlDataAdapter( _
                        "SELECT [Order Details].OrderID, Products.ProductName, [Order Details].Quantity, " & _
                        "[Order Details].[UnitPrice]*[Quantity]*(1-[Discount]) AS ItemTotal " & _
                        "FROM Products INNER JOIN [Order Details] ON Products.ProductID = [Order Details].ProductID " _
                        , nwindConn)
    
                    ordersdetailDA.Fill(ds, "OrderDetails")
    
                    nwindConn.Close()
    
                    ds.Relations.Add("CustOrders", _
                    ds.Tables("Customers").Columns("CustomerID"), _
                    ds.Tables("Orders").Columns("CustomerID")).Nested = True
    
                    ds.Relations.Add("OrdersToOrdersDetail", _
                    ds.Tables("Orders").Columns("OrderID"), _
                    ds.Tables("OrderDetails").Columns("OrderID")).Nested = True
    
                    ' XSLT to use for transforming this dataset.
                    sXSL = "CustOrders.xslt" 
    
            End Select
    
            ' Close the connection to the data source.
            nwindConn.Close()
    
            ' Transform the dataset by using the appropriate stylesheet.
            Dim xmlDoc As XmlDataDocument = New XmlDataDocument(ds)
            Dim xslTran As XslTransform = New XslTransform()
            xslTran.Load(Server.MapPath(sXSL))
    
            ' Stream the results of the transformation to Word.
            Response.ContentType = "application/msword"
            Response.Charset = ""
            Response.ContentEncoding = System.Text.Encoding.Default
            xslTran.Transform(xmlDoc, Nothing, Response.Output)
    
        End Sub
  6. Thêm d?ng sau m? ? trên cùng c?a WebForm1.aspx.vb, trư?c khi th?c hi?n l?p WebForm1:
    Imports System.Data.SqlClient
    Imports System.Xml
    Imports System.Xml.Xsl
  7. Trên các Dự án tr?nh đơn, nh?p vào Thêm m?c m?i. T? danh sách m?u, nh?p vào XSLT File, tên t?p tin Contacts.XSLT, sau đó b?m M?.
  8. Thay th? các n?i dung c?a Contacts.xslt v?i nh?ng đi?u sau đây:
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    	xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="urn:my-scripts" >   
    
    <xsl:output method="text"/>
    
    <xsl:template match="/">
    
    	<xsl:text>{\rtf1</xsl:text>
    	
        <xsl:text>{\fonttbl{\f0\froman\fcharset0\fprq2 Times New Roman;}{\f1\fswiss\fcharset0\fprq2 Arial;}}</xsl:text>
        
    	<xsl:text>{\header\pard\fs50 My Customer Contacts}</xsl:text>
    	
    	<xsl:text>{\footer\pard\fs18 Page {\field{\*\fldinst PAGE}</xsl:text>
    	<xsl:text>{\fldrslt }} of {\field{\*\fldinst NUMPAGES}{\fldrslt 1}} \par}</xsl:text>
    	
    	<xsl:text>\f1\fs20</xsl:text>
    	
        <xsl:for-each select="Contacts/Customers">
    		<xsl:text>\par\b </xsl:text><xsl:value-of select="CustomerID"/><xsl:text>\b0</xsl:text>
    		<xsl:text>\par </xsl:text><xsl:value-of select="CompanyName"/>
    		<xsl:text>\par </xsl:text><xsl:value-of select="ContactName"/>
    		<xsl:text>\par </xsl:text><xsl:value-of select="Phone"/>
    		<xsl:text>\par</xsl:text>
        </xsl:for-each>
    	      
    	<xsl:text>}</xsl:text>
    
    </xsl:template>
    
    <xsl:template match="Customers">
    
        <xsl:text>\par\b </xsl:text><xsl:value-of select="CustomerID"/><xsl:text>\b0</xsl:text>
        <xsl:text>\par </xsl:text><xsl:value-of select="CompanyName"/>
        <xsl:text>\par </xsl:text><xsl:value-of select="ContactName"/>
        <xsl:text>\par </xsl:text><xsl:value-of select="Phone"/>
        <xsl:text>\par</xsl:text>
    
    </xsl:template>
    
    </xsl:stylesheet> 
  9. Trên các Dự án tr?nh đơn, nh?p vào Thêm m?c m?i. T? danh sách m?u, nh?p vào XSLT File, tên t?p tin CustOrders.xslt, sau đó b?m M?.
  10. Thay th? các n?i dung c?a CustOrders.xslt v?i nh?ng đi?u sau đây:
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    	xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="urn:my-scripts" >   
    
    <xsl:output method="text"/>
    
    <msxsl:script language="VB" implements-prefix="user">
        Dim CustomerTotal as Double = 0
        Dim OrderSubtotal as Double = 0
        
        Function AddToOrderSubtotal(amt)
            amt.MoveNext
            OrderSubtotal = OrderSubtotal + System.Convert.ToDouble(amt.Current.Value)
        End Function
        
        Function GetOrderSubtotal
    		GetOrderSubtotal = OrderSubtotal
        End Function
        
        Function GetCustomerTotal
    		GetCustomerTotal = CustomerTotal
    		CustomerTotal = 0
    	End Function
    	
        Function GetOrderTotal(freight)
           freight.MoveNext
           nFreight = System.Convert.ToDouble(freight.Current.Value)
           GetOrderTotal = nFreight + OrderSubtotal
           CustomerTotal = nFreight + OrderSubtotal + CustomerTotal
           OrderSubtotal = 0  
        End Function
            
    </msxsl:script>
    
    <xsl:template match="CustomerOrders">
    
    	<xsl:text>{\rtf1</xsl:text>
    	
    	<xsl:text>{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;
    	\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;
    	\red255\green255\blue255;\red221\green221\blue221;}</xsl:text>
    	
    	<xsl:text>{\info{\title Sample RTF Document}{\author Microsoft Developer Support}}</xsl:text>
    	
    	<xsl:text>{\header\pard\qc{\fs50 ASP-Generated RTF\par}{\fs18\chdate\par}\par\par}</xsl:text>
    	
    	<xsl:text>{\footer\pard\qc\brdrt\brdrs\brdrw10\brsp100\fs18 Page {\field{\*\fldinst PAGE}</xsl:text>
    	<xsl:text>{\fldrslt }} of {\field{\*\fldinst NUMPAGES}{\fldrslt 1}} \par}</xsl:text>
    	
    	<xsl:apply-templates select="Customers"/>
    	      
    	<xsl:text>}</xsl:text>
    
    </xsl:template>
    
    <xsl:template match="Customers">
    
        <xsl:text>\par\pard\fs20\cf2\qr\b </xsl:text><xsl:value-of select="CustomerID"/><xsl:text>\cf0\b0</xsl:text>
        <xsl:text>\par\pard </xsl:text><xsl:value-of select="CompanyName"/>
        <xsl:text>\par </xsl:text><xsl:value-of select="Address"/>
        <xsl:text>\par </xsl:text><xsl:value-of select="City"/>
        <xsl:text>, </xsl:text><xsl:value-of select="Region"/>
        <xsl:text> </xsl:text><xsl:value-of select="PostalCode"/>
        <xsl:text>\par </xsl:text><xsl:value-of select="Country"/>
        <xsl:text>\par\par</xsl:text>
    
    	<xsl:apply-templates select="Orders"/>
    
    	<xsl:text>\trowd\cellx7000\cellx9000\pard\intbl\ql\b\cbpat1 </xsl:text>
    	<xsl:text>Order Total for the Current Period:\cell </xsl:text>
    	<xsl:text>\qr</xsl:text>
    	<xsl:variable name="CustTtl" select="user:GetCustomerTotal()"/>
    	<xsl:value-of select="format-number($CustTtl,'$###0.00')"/>
    	<xsl:text>\cell</xsl:text>
    	<xsl:text>\pard\intbl\row</xsl:text>
    		
    	<xsl:text>\pard\par\pard</xsl:text>
    	<xsl:text>\pard\plain\fs18\cf6\qc</xsl:text>
    	<xsl:choose>
    		<xsl:when test="$CustTtl = 0">
             <xsl:text>\b We've missed hearing from you!\b0 </xsl:text>
             <xsl:text> At your convenience, please call your personal sales representative </xsl:text>
             <xsl:text>so that we may discuss our specials for new and returning customers!</xsl:text>
          </xsl:when>
          <xsl:when test="$CustTtl > 2000">
             <xsl:text>\b Congratulations!\b0  Your purchases for this period qualify you for a \b 20%\b0 </xsl:text>
             <xsl:text> discount on one of your next orders. To take advantage of this offer, provide </xsl:text>
             <xsl:text>the coupon code ABC123XYZ when placing your order.</xsl:text>
          </xsl:when>
          <xsl:otherwise>
             <xsl:text> We value your patronage with Northwind Traders and would love to hear from you. </xsl:text>
             <xsl:text>If you have any questions about our upcoming line of products or if you want </xsl:text>
             <xsl:text>a catalog for the coming season, call 1-888-000-000.</xsl:text>
          </xsl:otherwise>
        </xsl:choose>
    	<xsl:text>\par\pard</xsl:text>
    	<xsl:text>\par \page</xsl:text>
    
    </xsl:template>
    
    <xsl:template match="Orders">
    
    	<xsl:text>\trowd\cellx9000\pard\intbl\cbpat9</xsl:text>
    	<xsl:text>\ql\b </xsl:text><xsl:value-of select="OrderID"/><xsl:text>\b0\cell </xsl:text>
    	<xsl:text>\pard\intbl\row</xsl:text>
    	
    	<xsl:apply-templates select="OrderDetails"/>
    
    	<xsl:text>\trowd\cellx7000\cellx9000\pard\intbl</xsl:text>
    	<xsl:text>\qr Subtotal:\cell </xsl:text>
    	<xsl:value-of select="format-number(user:GetOrderSubtotal(),'$###0.00')"/><xsl:text>\cell</xsl:text>	
    	<xsl:text>\pard\intbl\row</xsl:text>
    		
    	<xsl:text>\trowd\cellx7000\cellx9000\pard\intbl</xsl:text>
    	<xsl:text>\qr Freight:\cell </xsl:text>
    	<xsl:value-of select="format-number(Freight,'$###0.00')"/><xsl:text>\cell</xsl:text>	
    	<xsl:text>\pard\intbl\row</xsl:text>
    
    	<xsl:text>\trowd\cellx7000\cellx9000\pard\intbl</xsl:text>
    	<xsl:text>\qr Total:\cell </xsl:text>
    	<xsl:value-of select="format-number(user:GetOrderTotal(Freight), '$###0.00')"/><xsl:text>\cell</xsl:text>	
    	<xsl:text>\pard\intbl\row</xsl:text>
    		
    	<xsl:text>\trowd\cellx9000\pard\intbl \cell\pard\intbl\row</xsl:text>
    	
    </xsl:template>
    
    <xsl:template match="OrderDetails">
    
    	<xsl:text>\trowd\cellx5000\cellx7000\cellx9000\pard\intbl\ql </xsl:text>
    	<xsl:value-of select="ProductName"/><xsl:text>\cell </xsl:text>
    	<xsl:text>\qc </xsl:text><xsl:value-of select="Quantity"/><xsl:text>\cell </xsl:text>
    	<xsl:text>\qr </xsl:text>
    	<xsl:value-of select="format-number(ItemTotal,'$###0.00')"/><xsl:text>\cell</xsl:text>
    	<xsl:variable name="RunTotal" select="user:AddToOrderSubtotal(ItemTotal)"/>
    	<xsl:text>\pard\intbl\row</xsl:text>
    
    </xsl:template>
    
    </xsl:stylesheet>
  11. Trên các Xây d?ng tr?nh đơn, nh?p vào Xây d?ng gi?i pháp.
  12. Kh?i đ?ng Internet Explorer và duy?t đ?n http://localhost/RTFDemo/Webform1.aspx.
  13. Nh?p vào Xem thông tin liên h? đ? xem chuy?n đ?i XML đ?u tiên đ? RTF trong Word.
  14. Nh?p vào Quay l?i trong Internet Explorer.
  15. Nh?p vào Khách hàng xem đơn đ?t hàng đ? xem chuy?n đ?i XML th? hai đ? RTF trong Word.

RTF gi?i đáp th?c m?c M?o

  • Khi vi?t, m?u m? b?ng cácChuy?n đ?i m?t t?p d? li?u vào RTFph?n, su?i RTF tr?c ti?p đ?n các tr?nh duy?t. Ngoài ra, b?n có th? lưu các RTF vào m?t t?p tin và chuy?n hư?ng đ?n t?p tin đ? lưu. Đ? th?c hi?n vi?c này, thay th? nh?ng d?ng này M? trong m?u
    Response.ContentType = "application/msword"
    Response.ContentEncoding = System.Text.Encoding.Default
    Response.Charset = ""
    xslTran.Transform(xmlDoc, Nothing, Response.Output)
    v?i:
    Dim writer As XmlTextWriter = New XmlTextWriter( _
            Server.MapPath("Results.doc"), System.Text.Encoding.Default)
    xslTran.Transform(xmlDoc, Nothing, writer)
    writer.Close()
    Response.Redirect("Results.doc")
    Lưu tr? RTF vào m?t t?p tin theo cách này cho phép b?n d? dàng ki?m tra c?u trúc c?a RTF trong t?p tin b?ng cách s? d?ng b?t k? tr?nh so?n th?o văn b?n, ch?ng h?n như Notepad. Lưu tr? RTF vào m?t t?p tin có th? là m?t k? thu?t kh?c ph?c s? c? h?u ích n?u XSL chuy?n đ?i không s?n xu?t các k?t qu? b?n mong đ?i.
  • Khi chuy?n đ?i đ? RTF, đư?c nh?n th?c c?a b?n hi?n nay như th? nào kho?ng tr?ng và v?n chuy?n tr? v? trong stylesheet c?a b?n do đó có th? ?nh hư?ng như th? nào Word di?n gi?i c?a b?n RTF. C? hai m?u m? ? đây bài vi?t s? d?ng các <xsl:text></xsl:text> nguyên t? v? nó bu?c b?t k? thông tin không gian màu tr?ng trong nó gi? l?i.
  • S? d?ng <xsl:output method="text"></xsl:output> trong stylesheet c?a b?n đ? đ?m b?o r?ng XML c?a b?n đư?c chuy?n đ?n văn b?n (hơn XML, đó là phương pháp s?n lư?ng m?c đ?nh). N?u b?n không xác đ?nh văn b?n như các phương pháp s?n lư?ng, XML x? l? hư?ng d?n có th? đư?c thêm vào các t?p tin. Đi?u này có th? ngăn ch?n t? t? m?t cách chính xác interpeting văn b?n như RTF.

THAM KH?O

Đ? thêm thông tin v? phía máy ch? t? đ?ng hóa c?a Microsoft Word và ?ng d?ng văn ph?ng khác, b?m vào s? bài vi?t dư?i đây đ? xem bài vi?t trong cơ s? ki?n th?c Microsoft:
257757 Thông báo: Cân nh?c cho phía máy ch? t? đ?ng hóa c?a văn ph?ng
Cho thông tin b? sung v? vi?c s? d?ng RTF trong gi?i pháp c?a b?n, Click vào bài vi?t s? đi?n tho?i dư?i đây đ? xem các bài vi?t trong cơ s? ki?n th?c Microsoft:
270906 HOWTO: S? d?ng ASP đ? t?o m?t tài li?u đ?nh d?ng (RTF) d?ng phong phú đ? d?ng su?i đ? Microsoft Word
258513 HOWTO: Dán RichText đ?nh d?ng chu?i thành t? v?i t? đ?ng hóa Visual Basic
Đ? thêm thông tin v? chuy?n đ?i XML b?ng cách s? d?ng tr?c quan Cơ b?n.NET, b?m vào s? bài vi?t dư?i đây đ? xem bài vi?t trong Microsoft Ki?n th?c cơ b?n:
300934 Làm th? nào đ?: Áp d?ng m?t XSL Transformation cho XML cho Streaming b?ng cách s? d?ng Visual Basic.NET
300929 Làm th? nào đ?: Áp d?ng m?t XSL Transformation t? m?t tài li?u XML đ? m?t tài li?u XML b?ng cách s? d?ng Visual Basic.NET

Thu?c tính

ID c?a bài: 311461 - L?n xem xét sau cùng: 27 Tháng Tám 2011 - Xem xét l?i: 2.0
Áp d?ng
  • Microsoft Office Word 2007
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft ASP.NET 1.0
  • Microsoft Word 2002 Standard Edition
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft ASP.NET 1.1
T? khóa: 
kbhowto kbmt KB311461 KbMtvi
Máy d?ch
QUAN TRỌNG: Bài vi?t này đư?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngư?i d?ch. Microsoft cung c?p các bài vi?t do con ngư?i d?ch và c? các bài vi?t do máy d?ch đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng như m?t ngư?i nư?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thư?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này:311461

Cung cấp Phản hồi

 

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