Aracılığıyla paylaş


XslCompiledTransform Sınıfına Girişler

Transform yöntemi, kaynak belge için üç giriş türü kabul eder: arabirimi uygulayan IXPathNavigable bir nesne, kaynak belgeyi okuyan bir XmlReader nesne veya dize URI'si.

Uyarı

XslCompiledTransform sınıfı boşlukları varsayılan olarak korur. Bu, W3C XSLT 1.0 önerisinin 3.4. bölümüne göredir.

IXPathNavigable Arabirimi

IXPathNavigable arabirimi XmlNode ve XPathDocument sınıflarında uygulanır. Bu sınıflar, XML verilerinin bellek içi önbelleğini temsil eden bir sınıftır.

  • XmlNode sınıfı, W3C Belge Nesne Modeli'ni (DOM) temel alır ve düzenleme özelliklerini içerir.

  • XPathDocument sınıfı, XPath veri modelini temel alan salt okunur bir veri deposudur. XPathDocument XSLT işleme için önerilen sınıftır. Sınıfına kıyasla XmlNode daha hızlı performans sağlar.

Uyarı

Dönüştürmeler belgeye bir bütün olarak uygulanır. Başka bir deyişle, belge kök düğümü dışında bir düğüm geçirirseniz, bu işlem dönüştürme işleminin yüklenen belgedeki tüm düğümlere erişmesini engellemez. Düğüm parçasını dönüştürmek için yalnızca düğüm parçasını içeren bir nesne oluşturmanız ve bu nesneyi yöntemine Transform geçirmeniz gerekir. Daha fazla bilgi için Nasıl yapılır: Düğüm Parçasını Dönüştürme bölümüne bakın.

Aşağıdaki örnek, transform.xsl stil sayfasını kullanarak books.xml dosyasını books.html dosyasına dönüştürmek için yöntemini kullanır XslCompiledTransform.Transform . books.xml ve transform.xsl dosyaları şu konuda bulunabilir: Nasıl yapılır: Derleme Kullanarak XSLT Dönüşümü Gerçekleştirme.

// Open books.xml as an XPathDocument.
XPathDocument doc = new XPathDocument("books.xml");

// Create a writer for writing the transformed file.
XmlWriter writer = XmlWriter.Create("books.html");

// Create and load the transform with script execution enabled.
XslCompiledTransform transform = new XslCompiledTransform();
XsltSettings settings = new XsltSettings();
settings.EnableScript = true;
transform.Load("transform.xsl", settings, null);

// Execute the transformation.
transform.Transform(doc, writer);
' Open books.xml as an XPathDocument.
Dim doc As XPathDocument = New XPathDocument("books.xml")

' Create a writer for writing the transformed file.
Dim writer As XmlWriter = XmlWriter.Create("books.html")

' Create and load the transform with script execution enabled.
Dim transform As XslCompiledTransform = New XslCompiledTransform()
Dim settings As XsltSettings = New XsltSettings()
settings.EnableScript = True
transform.Load("transform.xsl", settings, Nothing)

'Execute the transformation.
transform.Transform(doc, writer)

XmlReader Nesnesi

Transform yöntem, XmlReader öğesinin geçerli düğümünden başlayarak tüm alt öğelerine kadar yüklenir. Bu, bağlam belgesi olarak belgenin bir bölümünü kullanmanızı sağlar. Transform yöntemi döndüğünde, XmlReader bağlam belgesinin sonundan sonraki düğüme konumlandırılır. Belgenin sonuna ulaşılırsa, XmlReader dosya sonuna (EOF) konumlandırılır.

Aşağıdaki örnek, transform.xsl stil sayfasını kullanarak books.xml dosyasını books.html dosyasına dönüştürmek için yöntemini kullanır XslCompiledTransform.Transform . books.xml ve transform.xsl dosyaları şu konuda bulunabilir: Nasıl yapılır: Derleme Kullanarak XSLT Dönüşümü Gerçekleştirme.

// Create a reader to read books.xml
XmlReader reader = XmlReader.Create("books.xml");

// Create a writer for writing the transformed file.
XmlWriter writer = XmlWriter.Create("books.html");

// Create and load the transform with script execution enabled.
XslCompiledTransform transform = new XslCompiledTransform();
XsltSettings settings = new XsltSettings();
settings.EnableScript = true;
transform.Load("transform.xsl", settings, null);

// Execute the transformation.
transform.Transform(reader, writer);
'Create a reader to read books.xml
Dim reader As XmlReader = XmlReader.Create("books.xml")

' Create a writer for writing the transformed file.
Dim writer As XmlWriter = XmlWriter.Create("books.html")

' Create and load the transform with script execution enabled.
Dim transform As XslCompiledTransform = New XslCompiledTransform()
Dim settings As XsltSettings = New XsltSettings()
settings.EnableScript = True
transform.Load("transform.xsl", settings, Nothing)

' Execute the transformation.
transform.Transform(reader, writer)

Dize URI'si

XSLT girişi olarak kaynak belge URI'sini de belirtebilirsiniz. XmlResolver URI'yi çözümlemek için kullanılır. XmlResolver yönteminde kullanmak için Transform öğesini belirtebilirsiniz. XmlResolver belirtilmezse, Transform yöntemi kimlik bilgisi olmayan bir varsayılan XmlUrlResolver kullanır.

Aşağıdaki örnek, transform.xsl stil sayfasını kullanarak books.xml dosyasını books.html dosyasına dönüştürmek için yöntemini kullanır XslCompiledTransform.Transform . books.xml ve transform.xsl dosyaları şu konuda bulunabilir: Nasıl yapılır: Derleme Kullanarak XSLT Dönüşümü Gerçekleştirme.

// Create and load the transform with script execution enabled.
XslCompiledTransform transform = new XslCompiledTransform();
XsltSettings settings = new XsltSettings();
settings.EnableScript = true;
transform.Load("transform.xsl", settings, null);

// Execute the transformation.
transform.Transform("books.xml", "books.html");
' Create and load the transform with script execution enabled.
Dim transform As XslCompiledTransform = New XslCompiledTransform()
Dim settings As XsltSettings = New XsltSettings()
settings.EnableScript = True
transform.Load("transform.xsl", settings, Nothing)

' Execute the transformation.
transform.Transform("books.xml", "books.html")

Daha fazla bilgi için bkz. XSLT İşleme Sırasında Dış Kaynakları Çözümleme.

Ayrıca bakınız