问题标签 [xslcompiledtransform]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
5289 浏览

xslt - XslCompiledTransform.Transform 将 """ 替换为实引号

做这样的事情:

在哪里

并且每次字符串 """ 替换为结果文件中的实引号。
无法理解为什么会发生这种情况......

0 投票
2 回答
135 浏览

.net - 在使用具有非默认命名空间和 XSL 文件的 XML 文件时,编写 .NET 可以理解的 XPath 表达式的正确方法是什么?

我知道当涉及到 .NET(或者至少是我正在使用的 .NET 版本)时,如果我想从具有非默认命名空间的 XML 文档中查询数据,我至少有两个选择:

最近我一直在使用 XSLCompiledTransform 类,并且在从具有非默认命名空间的 XML 文件中读取数据时遇到了类似的问题。

由于将编写实际 XSL 文件的人可能不知道他们需要使用 local-name() 函数,并且无法控制他们将使用的 XML 文件,所以我可以按代码顺序做些什么忍受 XSLCompiledTransform 类正确解释 (/node0/node1/node2/etc) 形式的 xpath 表达式?

0 投票
1 回答
363 浏览

xml - 这个 XSL 代码有什么问题?

当我应用转换时,我得到一个异常:表达式必须评估为节点集。

现在,如果我要使用 if 语句并将其放在第一个循环的级别,则可以正确应用转换。

如果问题在于表达式“$a0 | $a1 | $a2”不被视为节点集,我如何使用 XSLT 1.0 实现类似的目标?

0 投票
1 回答
1277 浏览

c# - 使用 XSLT 和 C# 将图像 (Byte[]) 插入 word doc

我有一个看起来像这样的 xml 文档。

还有一个循环遍历每个作业的 XSLT 文件。我的问题是如何插入保存为 byte[] 的图像?它们仅保存在数据库中,并且不会为它们创建文件,因为它们是在应用程序中生成的。我的 C# 代码如下所示。

0 投票
1 回答
19013 浏览

xslt - 当输入 XML 和转换 XSL 是字符串时,如何使用 XslCompiledTransform。如何将转换结果作为字符串获取?

我有一个字符串 inputXMLString,第二个包含名为 transformXSLString 的转换 XSL。它们都是正确格式化的xml。

如何在 C# 中使用 XslCompiledTransform 执行转换,以便将结果也作为字符串获取,比如说 resultXMLString?

0 投票
1 回答
1822 浏览

.net - XslCompiledTransform 从 XmlDocument 到 XmlDocument

我有以下 VB.NET 代码,用于将一些 XML 转换为新的 XML,然后继续处理。这是一个一次性的过程,而不是多次完成的事情,所以据我所知,缓存没有效率。

该代码有效,但我看到了性能问题。我明白性能问题可能与 XSLT 有关。

我还发现开发人员遇到 XslCompiledTransform 性能问题的实例,尤其是在 64 位环境中,这可能是一个错误 ( http://connect.microsoft.com/VisualStudio/feedback/details/508748 )

可能的 XSLT 性能问题和 XslCompiledTransform 问题都不是我能控制的,但我的代码存在问题是可行的。我只是想确保我的转换方法是我需要的最有效的方法。

有人能指出我的代码有任何问题吗?

编辑:这是一次性转换,所以没有循环。

0 投票
2 回答
1029 浏览

xslt - XslCompiledTransform 因堆栈溢出而失败

我有一个带有 805 模板的大型 XSLT 文件,根据系统和环境,该文件会因堆栈溢出而失败。

开发环境是 Windows 7、InfoPath 2010 和 C#。尽管安装了 .NET 4.0,但此版本的 InfoPath 使用 .NET 2.0。

正在使用的例程是:

我可以看到一些可能性:

  1. 增加“transform.Load”命令可用的内存
  2. 启动一个具有更多内存的单独线程
  3. 启动一个单独的线程并使用“msxsl.exe”执行转换(始终有效)
  4. 将 XSLT 文件拆分为更小的部分并多次执行转换

有人对选择哪个选项有建议吗?或者有什么其他建议?

保罗


所讨论的 XLST 文件从 XML 文件中获取一些元素,更改一些元素的名称,然后生成另一个 XML 文件。大约有 800 个元素,每个元素都有自己的模板。

此代码显示了 XSLT 文件开头的三个模板和两个用于复制元素的模板:一个用于按原样复制元素,另一个用于更改元素的名称。所有后续模板都以这两种方式之一进行格式化。

这种语法是否导致递归,或者是模板的数量导致堆栈溢出。(通过在新线程中运行此转换,我们已经避免了这个问题,但也许没有解决它。)

0 投票
1 回答
1068 浏览

xml - 在 Dynamics AX 中将 XML 导出为 .plain 文本文件

这是关于这个线程中的帖子。 http://microsoft.public.axapta.programming.narkive.com/32IFWvdU/dax-4-0-aif-only-xml-format-possible-for-outbound-file

我正在尝试在 AX 2012 中做同样的事情。我在这篇文章中不理解的地方是它说:“在新适配器的 writefile 方法中,您可以进行 xslt 转换并获得 csv .. ……”。如何在 AX 2012 的代码中进行 xslt 转换。我尝试使用 XSLCompiledTransform 类,但它只支持 xml 并且仅用于将 XML 转换为 XML。任何建议将不胜感激。

0 投票
1 回答
1617 浏览

c# - XslCompiledTransform 换行符,我该如何输入它们?

使用以下代码:

我有一些来自数据库的字符串,其中包含<br />一行返回(如在其他地方使用的)。无论我用 Environment.NewLine、\n 等替换它,它都不会在转换后的文档中放置换行符。

编辑

用 \r\n 替换换行符并按照以下建议进行更改:

仍然可以创建转换后的文档,但仍然没有将任何内容放到新行上。作为参考,我将使用 .doc 扩展名重命名转换后的文档以在 word 中打开,XML 有换行符,但在 Word 中打开时没有。

0 投票
1 回答
648 浏览

c# - xslcompiledtransform 输出函数名和命名空间

背景:我正在开发一个 XSLT 来将 XML 文档转换为 rtf 文档。XSLT 有一个名为 GetImageString 的 msxsl:script 函数,它返回给定图像文件的字符串表示形式,因此我可以将图像嵌入 rtf 文档中。

问题:当 xslCompiledTransform 与 xmlWriterSettings 和 XmlWriter 一起使用时,转换的输出 (xsl:output method="text") 包括脚本函数的名称 (GetImageString) 以及包含在XSL 文件。如果我在没有 xmlWriterSettings 和 XmlWriter 类的情况下使用 XslCompiledTransform,则输出是正确的,除了在文件顶部插入 BOM(字节顺序标记),这会混淆(至少)MS Word rtf 阅读器。因此,为了抑制 BOM,我必须使用 XmlWritterSettings(和 XmlWriter)类,但是当调用嵌入式 c# 代码时输出不正确。

这是我的 xsl 文件的片段:

这是调用转换的 c# 程序:

这是有问题的输出的样子:

{\rtf1\ansi {\fonttbl {\f1 Times New Roman;} } {\pict\wmetafile8 GetImageString xmlns:xpp="http://www.sdl.com/xpp" >xmlns:w="http:// schemas.openxmlformats.org/wordprocessingml/2006/main" >xmlns:v="urn:schemas-microsoft-com:vml" xmlns:msxsl="urn:schemas-microsoft-com:xslt" >xmlns:rend="urn :rend-scripts" 49492A00BC480000803...

(GetImageString 和namespcaes 列表周围有一个< 和一个>,但我无法弄清楚如何将其格式化为问题)

任何人都知道如何调用 msxsl:script 函数而不输出函数名称和额外的命名空间(并且没有 BOM)?