Udostępnij za pośrednictwem


Dane wejściowe klasy XslCompiledTransform

Metoda Transform akceptuje trzy typy danych wejściowych dokumentu źródłowego: obiekt implementujący interfejs, XmlReader obiekt, który odczytuje IXPathNavigable dokument źródłowy lub identyfikator URI ciągu.

Uwaga

Klasa XslCompiledTransform domyślnie zachowuje biały znak. Jest to zgodne z sekcją 3.4 zalecenia W3C XSLT 1.0.

IXPathNavigable, interfejs

Interfejs IXPathNavigable jest implementowany w klasach XmlNode i XPathDocument . Te klasy reprezentują pamięć podręczną danych XML w pamięci.

  • Klasa XmlNode jest oparta na modelu obiektów dokumentów W3C (DOM) i obejmuje możliwości edycji.

  • Klasa XPathDocument jest magazynem danych tylko do odczytu opartym na modelu danych XPath. XPathDocument jest zalecaną klasą przetwarzania XSLT. Zapewnia szybszą wydajność w porównaniu z klasą XmlNode .

Uwaga

Przekształcenia mają zastosowanie do dokumentu jako całości. Innymi słowy, jeśli przekazujesz węzeł inny niż węzeł główny dokumentu, nie uniemożliwia to procesowi przekształcania uzyskiwania dostępu do wszystkich węzłów w załadowanym dokumencie. Aby przekształcić fragment węzła, należy utworzyć obiekt zawierający tylko fragment węzła i przekazać ten obiekt do Transform metody . Aby uzyskać więcej informacji, zobacz How to: Transform a Node Fragment (Instrukcje: przekształcanie fragmentu węzła).

W poniższym przykładzie użyto XslCompiledTransform.Transform metody , aby przekształcić plik books.xml w plik books.html przy użyciu arkusza stylów transform.xsl. Pliki books.xml i transform.xsl można znaleźć w tym temacie: Instrukcje: wykonywanie przekształcenia XSLT przy użyciu zestawu.

// 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, obiekt

Metoda Transform ładuje się z bieżącego węzła węzła XmlReader przez wszystkie jego elementy podrzędne. Dzięki temu można użyć części dokumentu jako dokumentu kontekstowego. Po powrocie TransformXmlReader metody element jest umieszczony w następnym węźle po zakończeniu dokumentu kontekstowego. Jeśli osiągnięto koniec dokumentu, XmlReader element jest umieszczony na końcu pliku (EOF).

W poniższym przykładzie użyto XslCompiledTransform.Transform metody , aby przekształcić plik books.xml w plik books.html przy użyciu arkusza stylów transform.xsl. Pliki books.xml i transform.xsl można znaleźć w tym temacie: Instrukcje: wykonywanie przekształcenia XSLT przy użyciu zestawu.

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

Identyfikator URI ciągu

Możesz również określić identyfikator URI dokumentu źródłowego jako dane wejściowe XSLT. Element XmlResolver służy do rozpoznawania identyfikatora URI. Można określić parametr XmlResolver do użycia, przekazując go do Transform metody . Jeśli parametr XmlResolver nie zostanie określony, Transform metoda używa wartości domyślnej XmlUrlResolver bez poświadczeń.

W poniższym przykładzie użyto XslCompiledTransform.Transform metody , aby przekształcić plik books.xml w plik books.html przy użyciu arkusza stylów transform.xsl. Pliki books.xml i transform.xsl można znaleźć w tym temacie: Instrukcje: wykonywanie przekształcenia XSLT przy użyciu zestawu.

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

Aby uzyskać więcej informacji, zobacz Rozwiązywanie zasobów zewnętrznych podczas przetwarzania XSLT.

Zobacz też