Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie können XSLT verwenden, um eine XML-Struktur zu transformieren, indem Sie XmlReader zum Lesen und XmlWriter zum Schreiben verwenden.
Beispiel: Verwenden Sie XSLT, um eine XML-Struktur zu transformieren, indem Sie XMLReader
zum Lesen und XMLWriter
zum Schreiben verwenden.
In diesem Beispiel wird eine XML-Struktur erstellt und XSLT verwendet, um sie zu transformieren. Das Beispiel nutzt einen XmlReader, um die ursprüngliche Struktur zu lesen, und einen XmlWriter, um die transformierte Version zu schreiben.
Zunächst werden die folgenden Elemente erstellt:
- Eine XML-Struktur
- Ein XmlReader der XML-Struktur
- Ein neues Dokument, das die XSLT-Ausgabe enthält
- Ein XmlWriter, um die transformierte Struktur in das neue Dokument zu schreiben
Anschließend wird eine XSLT-Transformation aufgerufen, die XmlReader verwendet, um die ursprüngliche XML-Struktur zu lesen, und XmlWriter, um die transformierte Struktur in das neue Dokument zu schreiben.
string xslt = @"<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>
<xsl:template match='/Parent'>
<Root>
<C1>
<xsl:value-of select='Child1'/>
</C1>
<C2>
<xsl:value-of select='Child2'/>
</C2>
</Root>
</xsl:template>
</xsl:stylesheet>";
var oldDocument = new XDocument(
new XElement("Parent",
new XElement("Child1", "Child1 data"),
new XElement("Child2", "Child2 data")
)
);
var newDocument = new XDocument();
using (var stringReader = new StringReader(xslt))
{
using (XmlReader xsltReader = XmlReader.Create(stringReader))
{
var transformer = new XslCompiledTransform();
transformer.Load(xsltReader);
using (XmlReader oldDocumentReader = oldDocument.CreateReader())
{
using (XmlWriter newDocumentWriter = newDocument.CreateWriter())
{
transformer.Transform(oldDocumentReader, newDocumentWriter);
}
}
}
}
string result = newDocument.ToString();
Console.WriteLine(result);
Dim xslMarkup As XDocument = _
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>
<xsl:template match='/Parent'>
<Root>
<C1>
<xsl:value-of select='Child1'/>
</C1>
<C2>
<xsl:value-of select='Child2'/>
</C2>
</Root>
</xsl:template>
</xsl:stylesheet>
Dim xmlTree As XElement = _
<Parent>
<Child1>Child1 data</Child1>
<Child2>Child2 data</Child2>
</Parent>
Dim newTree As XDocument = New XDocument()
Using writer As XmlWriter = newTree.CreateWriter()
' Load the style sheet.
Dim xslt As XslCompiledTransform = _
New XslCompiledTransform()
xslt.Load(xslMarkup.CreateReader())
' Execute the transform and output the results to a writer.
xslt.Transform(xmlTree.CreateReader(), writer)
End Using
Console.WriteLine(newTree)
Dieses Beispiel erzeugt die folgende Ausgabe:
<Root>
<C1>Child1 data</C1>
<C2>Child2 data</C2>
</Root>