XSLT Transformations with the XslTransform Cl...
来源:百度文库 编辑:神马文学网 时间:2024/04/30 02:45:09
.NET Framework Developer‘s Guide
XSLT Transformations with the XslTransform Class
The goal of the Extensible Stylesheet Language Transformation (XSLT) is to transform the content of a source XML document into another document that is different in format or structure. For example, to transform XML into HTML for use on a Web site or to transform it into a document that contains only the fields required by an application. This transformation process is specified by the W3C XSL Transformations (XSLT) Version 1.0 recommendation located at www.w3.org/TR/xslt. In the .NET Framework, the XslTransform class, found in the System.Xml.Xsl namespace, is the XSLT processor that implements the functionality of this specification. There are a small number of features that have not been implemented from the W3C XSLT Version 1.0 recommendation, listed inOutputs from an XslTransform. The following figure shows the transformation architecture of the .NET Framework.
Transformation Architecture
The XSLT recommendation uses XPath to select parts of an XML document, where XPath is a query language used to navigate nodes of a document tree. As shown in the diagram, the .NET Framework implementation of XPath is used to select parts of XML stored in several classes, such as an XmlDocument, an XmlDataDocument, and an XPathDocument. An XPathDocument is an optimized XSLT data store, and when used with XslTransform, it provides XSLT transformations with good performance.
The following table list commonly used classes when working with XslTransform and XPath and their function.
Class or Interface Function
XPathNavigator It is an API that provides a cursor style model for navigating over a store, along with XPath query support. It does not provide editing of the underlying store. For editing, use the XmlDocument class.
IXPathNavigable It is an interface that provides a CreateNavigator method to an XPathNavigator for the store.
XmlDocument It enables editing of this document. It implements IXPathNavigable, allowing document-editing scenarios where XSLT transformations are subsequently required. For more information, seeXmlDocument Input to XslTransform.
XmlDataDocument It is derived from the XmlDocument. It bridges the relational and XML worlds by using a DataSet to optimize storage of structured data within the XML document according to specified mappings on the DataSet. It implements IXPathNavigable, allowing scenarios where XSLT transformations can be performed over relational data retrieved from a database. For more information, seeXML Integration with Relational Data and ADO.NET.
XPathDocument This class is optimized for XslTransform processing and XPath queries, and it provides a read-only high performance cache. It implements IXPathNavigable and is the preferred store to use for XSLT transformations.
XPathNodeIterator It provides navigation over XPath node sets. All XPath selection methods on the XPathNavigator return an XPathNodeIterator. Multiple XPathNodeIterators can be created over the same store each representing a selected set of nodes.
The following code example loads an XSL style sheet, reads a file called mydata.xml into an XPathDocument, and performs a transformation on the data on a fictitious file called myStyleSheet.xsl, sending the formatted output to the console.
[Visual Basic]Imports SystemImports System.IOImports System.XmlImports System.Xml.XPathImports System.Xml.XslPublic Class SamplePrivate filename As [String] = "mydata.xml"Private stylesheet As [String] = "myStyleSheet.xsl"Public Shared Sub Main()Dim xslt As New XslTransform()xslt.Load(stylesheet)Dim xpathdocument As New XPathDocument(filename)Dim writer As New XmlTextWriter(Console.Out)writer.Formatting = Formatting.Indentedxslt.Transform(xpathdocument, Nothing, writer, Nothing)End Sub ‘MainEnd Class ‘Sample[C#]using System;using System.IO;using System.Xml;using System.Xml.XPath;using System.Xml.Xsl;public class Sample{private const String filename = "mydata.xml";private const String stylesheet = "myStyleSheet.xsl";public static void Main(){XslTransform xslt = new XslTransform();xslt.Load(stylesheet);XPathDocument xpathdocument = newXPathDocument(filename);XmlTextWriter writer = new XmlTextWriter(Console.Out);writer.Formatting=Formatting.Indented;xslt.Transform(xpathdocument, null, writer, null);}}See Also
XslTransform Class Implements the XSLT Processor |XSLT Processor Implementation of Discretionary Behaviors in the XslTransform Class |XPathNavigator in Transformations |XPathNodeIterator in Transformations |XPathDocument Input to XslTransform |XmlDataDocument Input to XslTransform |XmlDocument Input to XslTransform |XslTransform Class |XslTransform Members
XSLT Transformations with the XslTransform Class
The goal of the Extensible Stylesheet Language Transformation (XSLT) is to transform the content of a source XML document into another document that is different in format or structure. For example, to transform XML into HTML for use on a Web site or to transform it into a document that contains only the fields required by an application. This transformation process is specified by the W3C XSL Transformations (XSLT) Version 1.0 recommendation located at www.w3.org/TR/xslt. In the .NET Framework, the XslTransform class, found in the System.Xml.Xsl namespace, is the XSLT processor that implements the functionality of this specification. There are a small number of features that have not been implemented from the W3C XSLT Version 1.0 recommendation, listed inOutputs from an XslTransform. The following figure shows the transformation architecture of the .NET Framework.
Transformation Architecture
The XSLT recommendation uses XPath to select parts of an XML document, where XPath is a query language used to navigate nodes of a document tree. As shown in the diagram, the .NET Framework implementation of XPath is used to select parts of XML stored in several classes, such as an XmlDocument, an XmlDataDocument, and an XPathDocument. An XPathDocument is an optimized XSLT data store, and when used with XslTransform, it provides XSLT transformations with good performance.
The following table list commonly used classes when working with XslTransform and XPath and their function.
Class or Interface Function
XPathNavigator It is an API that provides a cursor style model for navigating over a store, along with XPath query support. It does not provide editing of the underlying store. For editing, use the XmlDocument class.
IXPathNavigable It is an interface that provides a CreateNavigator method to an XPathNavigator for the store.
XmlDocument It enables editing of this document. It implements IXPathNavigable, allowing document-editing scenarios where XSLT transformations are subsequently required. For more information, seeXmlDocument Input to XslTransform.
XmlDataDocument It is derived from the XmlDocument. It bridges the relational and XML worlds by using a DataSet to optimize storage of structured data within the XML document according to specified mappings on the DataSet. It implements IXPathNavigable, allowing scenarios where XSLT transformations can be performed over relational data retrieved from a database. For more information, seeXML Integration with Relational Data and ADO.NET.
XPathDocument This class is optimized for XslTransform processing and XPath queries, and it provides a read-only high performance cache. It implements IXPathNavigable and is the preferred store to use for XSLT transformations.
XPathNodeIterator It provides navigation over XPath node sets. All XPath selection methods on the XPathNavigator return an XPathNodeIterator. Multiple XPathNodeIterators can be created over the same store each representing a selected set of nodes.
The following code example loads an XSL style sheet, reads a file called mydata.xml into an XPathDocument, and performs a transformation on the data on a fictitious file called myStyleSheet.xsl, sending the formatted output to the console.
[Visual Basic]Imports SystemImports System.IOImports System.XmlImports System.Xml.XPathImports System.Xml.XslPublic Class SamplePrivate filename As [String] = "mydata.xml"Private stylesheet As [String] = "myStyleSheet.xsl"Public Shared Sub Main()Dim xslt As New XslTransform()xslt.Load(stylesheet)Dim xpathdocument As New XPathDocument(filename)Dim writer As New XmlTextWriter(Console.Out)writer.Formatting = Formatting.Indentedxslt.Transform(xpathdocument, Nothing, writer, Nothing)End Sub ‘MainEnd Class ‘Sample[C#]using System;using System.IO;using System.Xml;using System.Xml.XPath;using System.Xml.Xsl;public class Sample{private const String filename = "mydata.xml";private const String stylesheet = "myStyleSheet.xsl";public static void Main(){XslTransform xslt = new XslTransform();xslt.Load(stylesheet);XPathDocument xpathdocument = newXPathDocument(filename);XmlTextWriter writer = new XmlTextWriter(Console.Out);writer.Formatting=Formatting.Indented;xslt.Transform(xpathdocument, null, writer, null);}}See Also
XslTransform Class Implements the XSLT Processor |XSLT Processor Implementation of Discretionary Behaviors in the XslTransform Class |XPathNavigator in Transformations |XPathNodeIterator in Transformations |XPathDocument Input to XslTransform |XmlDataDocument Input to XslTransform |XmlDocument Input to XslTransform |XslTransform Class |XslTransform Members
XSLT Transformations with the XslTransform Cl...
《Gone with the wind》
Gone with the wind
Gone with the Wind
Work with the "now"
Working with Manifest Files: The Basics (The ...
Flying With the Soul of the Dead
The youth vote: Out with the olds | The Economist
Code Analysis with the Eclipse Profiler
reading with the help of mindmap
Teaching and Learning with the Net Generation
PLA budget to rise with the economy
Perspectives on Communicating with the Net Generation
MySpaceID: MySpace Sides with the Open Stack ...
Dealing with the downside of globalization
Perspectives on Communicating with the Net Generation
Gone with the Wind飘-中英版1
Gone with the Wind飘-中英版2
Gone with the Wind飘-中英版3
Gone with the Wind飘-中英版4
Gone with the Wind飘-中英版5
Retrieving Resources with the ResourceManager Class
paint with all the colors of the wind
THE face the sea,with spring flowers blossoming