Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
XSLT kullanarak xml ağacını dönüştürebilir, okumak ve XmlWriter yazmak için kullanabilirsinizXmlReader.
Örnek: Xml ağacını dönüştürmek için XSLT kullanma, XMLReader okuma ve XMLWriter yazma kullanma
Bu örnek bir XML ağacı oluşturur ve dönüştürmek için XSLT kullanır. özgün ağacı okumak için bir XmlReader ve dönüştürülmüş sürümü yazmak için kullanır XmlWriter .
Şu şekilde başlar:
- XML ağacı.
- XML ağacından bir XmlReader .
- XSLT çıkışını tutmak için yeni bir belge.
- XmlWriter Dönüştürülen ağacı yeni belgeye yazmak için.
Ardından özgün XML ağacını XmlReader okumak için öğesini ve dönüştürülen ağacı XmlWriter yeni belgeye yazmak için öğesini kullanan bir XSLT dönüştürmesi çağırır.
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)
Bu örnek aşağıdaki çıkışı oluşturur:
<Root>
<C1>Child1 data</C1>
<C2>Child2 data</C2>
</Root>