有没有办法通过应用XSLT中定义的自定义转换来使用XmlSerializer反序列化XML流?
答案 0 :(得分:2)
我认为没有一个API调用允许这样做,但你可以通过以下方法用几行来实现它:
XslCompiledTransform proc = new XslCompiledTransform();
proc.Load("sheet.xsl");
XmlDocument tempResult = new XmlDocument();
using (XmlWriter xw = tempResult.CreateNavigator().AppendChild())
{
proc.Transform("input.xml", null, xw);
xw.Close();
}
XmlSerializer ser = new XmlSerializer(typeof(Foo));
Foo foo = (Foo)ser.Deserialize(new XmlNodeReader(tempResult));