Sdílet prostřednictvím


Vstupy do třídy XslCompiledTransform

Metoda Transform přijímá tři vstupní typy pro zdrojový dokument: objekt, který implementuje IXPathNavigable rozhraní, XmlReader objekt, který čte zdrojový dokument nebo řetězcový identifikátor URI.

Poznámka:

Třída XslCompiledTransform ve výchozím nastavení zachovává prázdné znaky. To je v souladu s oddílem 3.4 doporučení W3C XSLT 1.0.

IXPathNavigable – rozhraní

Rozhraní IXPathNavigable je implementováno XmlNode v a XPathDocument třídách. Tyto třídy představují mezipaměť dat XML v paměti.

  • Třída XmlNode je založená na modelu DOM (Document Object Model) W3C a zahrnuje možnosti úprav.

  • Třída XPathDocument je úložiště dat jen pro čtení založené na datovém modelu XPath. XPathDocument je doporučená třída pro zpracování XSLT. Poskytuje rychlejší výkon v porovnání s XmlNode třídou.

Poznámka:

Transformace platí pro dokument jako celek. Jinými slovy, pokud předáte jiný uzel než kořenový uzel dokumentu, nezabráníte procesu transformace v přístupu ke všem uzlům v načteném dokumentu. Chcete-li transformovat fragment uzlu, musíte vytvořit objekt obsahující pouze fragment uzlu a předat tento objekt metodě Transform . Další informace naleznete v tématu Postupy: Transformace fragmentu uzlu.

Následující příklad používá metodu XslCompiledTransform.Transform k transformaci souboru books.xml na books.html soubor pomocí šablony stylů transform.xsl. Soubory books.xml a transform.xsl najdete v tomto tématu: Postupy: Provedení transformace XSLT pomocí sestavení.

// 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 – objekt

Metoda Transform se načte z aktuálního uzlu všech podřízených XmlReader položek. Díky tomu můžete jako kontextový dokument použít část dokumentu. Transform Po vrácení XmlReader metody se umístí na další uzel za koncem kontextového dokumentu. Pokud je dosaženo konce dokumentu, umístí se XmlReader na konec souboru (EOF).

Následující příklad používá metodu XslCompiledTransform.Transform k transformaci souboru books.xml na books.html soubor pomocí šablony stylů transform.xsl. Soubory books.xml a transform.xsl najdete v tomto tématu: Postupy: Provedení transformace XSLT pomocí sestavení.

// 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)

Identifikátor URI řetězce

Jako vstup XSLT můžete také zadat identifikátor URI zdrojového dokumentu. Slouží XmlResolver k překladu identifikátoru URI. Můžete určit, kterou XmlResolver chcete použít, předáním metody Transform . XmlResolver Pokud není zadaný, Transform použije metoda výchozí XmlUrlResolver bez přihlašovacích údajů.

Následující příklad používá metodu XslCompiledTransform.Transform k transformaci souboru books.xml na books.html soubor pomocí šablony stylů transform.xsl. Soubory books.xml a transform.xsl najdete v tomto tématu: Postupy: Provedení transformace XSLT pomocí sestavení.

// 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")

Další informace naleznete v tématu Řešení externích prostředků během zpracování XSLT.

Viz také