Cara: Mengubah Fragmen Simpul
Saat Anda mengubah data yang terkandung dalam objek XmlDocument atau XPathDocument, transformasi XSLT berlaku untuk dokumen secara keseluruhan. Dengan kata lain, jika Anda meneruskan simpul selain simpul akar dokumen, ini tidak mencegah proses transformasi mengakses semua simpul dalam dokumen yang dimuat. Untuk mengubah fragmen simpul, Anda harus membuat objek terpisah yang hanya berisi fragmen simpul, dan meneruskan objek tersebut ke Transform metode.
Prosedur
Untuk mengubah fragmen simpul
Membuat objek yang berisi dokumen sumber.
Menemukan fragmen simpul yang ingin Anda ubah.
Membuat objek terpisah hanya dengan fragmen simpul.
Teruskan fragmen simpul ke Transform metode.
Contoh
Contoh berikut mengubah fragmen simpul dan menghasilkan hasilnya ke konsol.
// Load an XPathDocument.
XPathDocument doc = new XPathDocument("books.xml");
// Locate the node fragment.
XPathNavigator nav = doc.CreateNavigator();
XPathNavigator myBook = nav.SelectSingleNode("descendant::book[@ISBN = '0-201-63361-2']");
// Create a new object with just the node fragment.
XmlReader reader = myBook.ReadSubtree();
reader.MoveToContent();
// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("single.xsl");
// Transform the node fragment.
xslt.Transform(reader, XmlWriter.Create(Console.Out, xslt.OutputSettings));
' Load an XPathDocument.
Dim doc As XPathDocument = New XPathDocument("books.xml")
' Locate the node fragment.
Dim nav As XPathNavigator = doc.CreateNavigator()
Dim myBook As XPathNavigator = nav.SelectSingleNode("descendant::book[@ISBN = '0-201-63361-2']")
' Create a new object with just the node fragment.
Dim reader As XmlReader = myBook.ReadSubtree()
reader.MoveToContent()
' Load the style sheet.
Dim xslt As XslCompiledTransform = New XslCompiledTransform()
xslt.Load("single.xsl")
' Transform the node fragment.
xslt.Transform(reader, XmlWriter.Create(Console.Out, xslt.OutputSettings))
Input
books.xml
<bookstore>
<book genre="autobiography" publicationdate="1981" ISBN="1-861003-11-0">
<title>The Autobiography of Benjamin Franklin</title>
<author>
<first-name>Benjamin</first-name>
<last-name>Franklin</last-name>
</author>
<price>8.99</price>
</book>
<book genre="novel" publicationdate="1967" ISBN="0-201-63361-2">
<title>The Confidence Man</title>
<author>
<first-name>Herman</first-name>
<last-name>Melville</last-name>
</author>
<price>11.99</price>
</book>
<book genre="philosophy" publicationdate="1991" ISBN="1-861001-57-6">
<title>The Gorgias</title>
<author>
<name>Plato</name>
</author>
<price>9.99</price>
</book>
</bookstore>
single.xsl
<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >
<output method="text" />
<template match="/">
Book title is <value-of select="//title" />
</template>
</stylesheet>
Output
Judul buku adalah The Confidence Man.