1

我正在尝试 XSLT 将 InfoPath 文档从 XML 转换为 HTML,但出现以下错误:

Cannot find a script or an extension object associated with namespace 'http://schemas.microsoft.com/office/infopath/2003/xslt/xDocument'.

甚至可以转换文档吗?我注意到 XSL 使用了xdXDocument:GetDOM类似于旧 MSXML 语法的函数。您可以在转换期间添加对 MSXML 的支持吗?

作为参考,命名空间是:

xmlns:xdXDocument="http://schemas.microsoft.com/office/infopath/2003/xslt/xDocument" 

本文建议您简单地使用 InfoPath 文档的打印视图 - 但我认为这可能是 InfoPath 2007 所独有的(2010 年后,您似乎可以打印任何视图)。


顺便说一句,我也尝试过使用 MSXML,但遇到了类似的错误:

Namespace 'http://schemas.microsoft.com/office/infopath/2003/xslt/xDocument' does not contain any functions.

这是我的 MSXML 代码:

var xml = new MSXML2.DOMDocument60();
xml.load(txtXmlFilePath.Text);
var lines = File.ReadAllLines(txtXslFilePath.Text);

// Seemingly need to strip out first <?xml... /> line to work
string sXsl = string.Join("\n", lines.Skip(1).ToArray());

var xsl = new MSXML2.DOMDocument60();
xsl.loadXML(sXsl);

string html = xml.transformNode(xsl);

所以基本问题仍然存在 - 如何转换 XSLT 转换 InfoPath 文档?

4

1 回答 1

3

xdXDocument:GetDOM()是一个扩展函数,用于访问 InfoPath 中辅助数据源的数据。我已经完成了使用 InfoPath 视图 XSLT 将 InfoPath XML 文档转换为 HTML 的任务,我知道处理这些扩展函数的唯一方法是编写实现它们的扩展对象(您可以实现只返回空的虚拟扩展对象如果您不需要这些函数的节点集。

另一种方法是创建一个对表单的辅助数据源没有任何引用的视图。

于 2013-05-17T05:25:24.307 回答