.NET转换xslt中有document方法的XML文档的问题

来源:互联网 发布:英国4g网络制式 编辑:程序博客网 时间:2024/05/22 05:15

为了方便测试转换结果,自己写了个小程序来用xslt转换xml文档,xslt文档中用到document方法引用外部xml文档。

  1. 执行转换时报“禁止执行document()函数”。

    解决:
    //第一个参数代表启用对document()支持,第二个参数代表是否支持script
    XsltSettings settings = new XsltSettings(true, false);
    reader = new System.Xml.XmlTextReader(xml);
    //转换时传入settings参数
    transform.Load(xslt, settings, null);
  2. 在执行转换又报错“XSLT编译错误”,调试下发现其实是报的“禁止解析外部URI”。
    解决:
    //注意第三个参数,不加的话同样无法支持document()
    transform.Load(xslt, settings, new XmlUrlResolver());
    //最后调用转换函数也得加。
    transform.Transform(reader, null, write, new XmlUrlResolver());

 

原创粉丝点击