您的位置:首页 > 编程语言 > C#

在C#中用xslt文件格式化转换xml

2016-09-09 17:43 393 查看
book.xml:

<bookstore>
<book genre="autobiography" publicationdate="1981-09-09" 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-05-22" 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-03-24" ISBN="1-861001-57-6">
<title>The Gorgias</title>
<author>
<name>Plato</name>
</author>
<price>9.99</price>
</book>
</bookstore>
book.xslt:

<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>


using System.Xml;

using System.Xml.XPath;

using System.Xml.Xsl;

static void Main(string[] args)
{
XPathDocument doc = new XPathDocument("../../book.xml");
XPathNavigator nav = doc.CreateNavigator();
XPathNavigator myBook = nav.SelectSingleNode("descendant::book[@ISBN = '0-201-63361-2']");
XmlReader reader = myBook.ReadSubtree();
XmlNodeType noe = reader.MoveToContent();//跳过空白,注释等不是内容的节点

XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("../../book.xslt");
xslt.Transform(reader, XmlWriter.Create(Console.Out, xslt.OutputSettings));
Console.ReadLine();
}


输出:Book title is The Confidence Man.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: