Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
U kunt XSLT gebruiken om een XML-structuur te transformeren, met behulp van XmlReader lezen en XmlWriter schrijven.
Voorbeeld: XSLT gebruiken om een XML-structuur te transformeren, met behulp van XMLReader
lezen en XMLWriter
schrijven
In dit voorbeeld wordt een XML-structuur gemaakt en wordt XSLT gebruikt om deze te transformeren. Het maakt gebruik van een XmlReader om de oorspronkelijke structuur te lezen en een XmlWriter om de getransformeerde versie te schrijven.
Het begint met het maken van:
- Een XML-structuur.
- Een XmlReader van de XML-structuur.
- Een nieuw document voor de XSLT-uitvoer.
- Een XmlWriter om de getransformeerde structuur naar het nieuwe document te schrijven.
Vervolgens wordt een XSLT-transformatie aangeroepen die gebruikmaakt van de XmlReader oorspronkelijke XML-structuur en de XmlWriter transformatiestructuur naar het nieuwe document schrijven.
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)
In dit voorbeeld wordt de volgende uitvoer gegenereerd:
<Root>
<C1>Child1 data</C1>
<C2>Child2 data</C2>
</Root>