XslTransform建立在一个流拉模型(streaming pull mode)上。因此可以把几个转换连接在一起。
private void button1_Click(object sender, System.EventArgs e)
{
XPathDocument doc =new XPathDocument("booksxpath.xml");
XslTransform transForm = new XslTransform();
transForm.Load("books.xsl");
//下面的文件流将会被输出
FileStream fs = new FileStream("booklist.html",FileMode.Create);
//创建一个浏览器
XPathNavigator nav = ((IXPathNavigable)doc).CreateNavigator();
//用transForm输出文件
transForm.Transform(nav,null,fs);
}
XslArgumentList,这是把对象和方法绑定到名称空间上的一种方式,绑定好后,就可以在转换中调用该方法。
private void button1_Click(object sender, System.EventArgs e)
{
XPathDocument doc = new XPathDocument("booksxpath.xml");
XslTransform transform = new XslTransform();
transform.Load("booksarg.xsl");
XmlWriter xw = new XmlTextWriter("argSample.xml",null);
XsltArgumentList argBook = new XsltArgumentList();
BookUtils bu = new BookUtils();
argBook.AddExtensionObject("urn:ProCSharp",bu);
XPathNavigator nav = ((IXPathNavigable)doc).CreateNavigator();
transform.Transform(nav,argBook,xw);
xw.Close();
}
//简单的测试类
public class BookUtils
{
public BookUtils()
{
}
public string ShowText()
{
return "This came from the ShowText method!";
}
}
浙公网安备 33010602011771号