Linq to xml:使用 XSLT 转换 XML 树


            string xslMarkup = @"<?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>";

            XDocument xmlTree = new XDocument(
                new XElement("Parent",
                    new XElement("Child1", "Child1 data"),
                    new XElement("Child2", "Child2 data")
                )
            );

            XDocument newTree = new XDocument();
            using (XmlWriter writer = newTree.CreateWriter())
            {
                // Load the style sheet.
                XslCompiledTransform xslt = new XslCompiledTransform();
                xslt.Load(XmlReader.Create(new StringReader(xslMarkup)));

                // Execute the transform and output the results to a writer.
                xslt.Transform(xmlTree.CreateReader(), writer);
            }

            Console.WriteLine(newTree);

posted @ 2008-12-26 15:21  昕友软件开发  阅读(282)  评论(0编辑  收藏  举报
欢迎访问我的开源项目:xyIM企业即时通讯