问题标签 [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 投票
2 回答
475 浏览

c# - 保留空间 XmlCompiledTransform

我试图从我的 xslt 文档中保留空格我的代码是

Xslt 文档

xml文件

我的预期输出是“Hello World”,但我目前正在获得“HelloWorld”,我们将不胜感激。

0 投票
1 回答
315 浏览

c# - msxml:script c# xml 片段与 XslCompiledTransform

嗨,我有以下样式表

在c#中使用以下脚本

xml 值为:

但是在执行转换时返回错误:

我的问题是 XslCompiledTransform 类对 XML 树有什么限制吗?还是在使用 XPathNodeIterator 时出现错误?

提前致谢。

0 投票
2 回答
1248 浏览

c# - 使用 XslCompiledTransform 时在属性之间的 XML 元素中保留空格

我正在使用该类将 XSL-T 文件xsltUri应用于 XML 文件:TargetXmlFileXslCompiledTransform

输入 XML:

输入 XSL:

实际输出 XML:

所需的输出 XML:

问题:如何在输出 XML 文件的“元素”标签内保留输入 XML 文件的空格(尤其是换行符)?我尝试了不同的选项,但在这种情况下没有任何效果。

感谢您的任何提示!

0 投票
3 回答
2079 浏览

.net - 基准 XSLT 性能

我正在尝试对 XSLT 的两个版本进行基准测试。目前我使用 Visual Studio 来调试从 .NET 组件调用的 xml 转换。VS 2010 是我用于开发的 IDE。

我得到的唯一线索是来自输出窗口(下面是一个例子):

样式表加载时间:656.2 毫秒
样式表 JIT 时间:11.18 毫秒
样式表执行时间:177.8 毫秒

我相信我只需要为“样式表执行时间”而烦恼,但不确定这些值是否确实反映了 XSL 的实际能力,因为每次运行似乎都在不断变化。

我想知道是否有可靠的方法来对 XSL 进行基准测试。任何分享使用 .NET 运行时对 XSL 进行基准测试的实践经验都会有所帮助。

0 投票
1 回答
122 浏览

c# - XslCompiledTransform cannot load stylesheet, expects token '}'

I have a XML that contains the following line:

XslCompiledTransform.Load is expecting '}' instead of ':'.

Is there any way to avoid this?

0 投票
1 回答
205 浏览

c# - “版本”不能是“转换”元素的子元素

我正在使用 XslCompiledTransform.Load 并且每次收到错误消息时:

这是样式表:

如果我删除版本,我会收到错误:缺少强制属性“版本” 是否因为我在标签“转换”中使用样式表而收到错误?

0 投票
1 回答
1534 浏览

c# - XslCompiledTransform.Load 引发未设置为对象实例的对象引用

在 XslCompiledTransform 中加载 xslt 时,我发现对象引用未设置为对象的实例。

我从数据库中获取了以下 xslt:-

并遵循数据库中的 xml:-

使用以下代码转换 xslt 时:-

但它Object reference not set to an instance of an object在行抛出错误“”: -

有什么建议么?

更新:只是为了添加更多,我在创建 XmlTextReader 后得到了这个:-

在此处输入图像描述

0 投票
1 回答
923 浏览

.net - XslCompiledTransform 线程安全

.NET System.Xml.Xsl 的 MSDN。XslCompiledTransform类状态:

线程安全

[1] XslCompiledTransform 对象在加载后是线程安全的。也就是说,Load 方法成功完成后,可以从多个线程同时调用 Transform 方法。

[2]如果在一个线程中再次调用 Load 方法,同时在另一个线程中调用 Transform 方法,则 XslCompiledTransform 对象通过继续使用旧状态来完成执行 Transform 调用。当 Load 方法成功完成时使用新状态。

[3]注意 Load 方法在从多个线程同时调用时不是线程安全的。

我(相当)确定段落[1][2]指的是Load()/在同一个对象实例Transform()上(在多个线程中)被调用。但是对于[3],有没有人知道它们是否意味着同一实例上的同时 s ,或者(有一些静态的东西意味着)您是否必须从所有实例中相互排除并发s ? XslCompiledTransformLoad()Load()

0 投票
1 回答
991 浏览

xslt-1.0 - XSLTCompiled 转换不支持文本文件的 XSLT 格式

使用 XSLT Compiled Transform 时,我无法将输出完全格式化,它总是会去除所有空格并且不是人类可读的形式。

但是,如果我通过 Visual Studio XSLT 调试器运行相同的转换,则输出会整齐地缩进。这是我的代码的样子:

转换将创建一个文本文件,Visual Studio 的 XSLT 调试器在保留输出格式方面有何不同?

我已经看过这个链接:XSLT Transform not indenting proper

当我输出到文本时,这不适用于我。我应该使用 Stream 以外的东西吗?

我的示例 XSLT:

预期输出:

使用 XSLT 编译转换的输出: {Start:Value1value2End:}

Visual Studio XSLT 调试器为我提供了预期的输出格式,但 XSLT Compiled 转换去除了所有空格和换行符。

0 投票
2 回答
942 浏览

c# - XslCompiledTransform 去除 CDATA 中的换行符而不替换它们

我有这个数据的源xml:

我正在使用 XslCompiledTransform 用这个 xslt 对其进行转换:

所以 Body 字段应该不变地通过。执行转换的 C# 代码如下:

这种转换的结果是:

如您所见,CDATA 和换行符都已被删除。在这个阶段删除 CDATA 是可以的,但我需要保留换行符。无论我使用NewLineHandlingNewLineChars设置的哪种组合(或者,实际上,如果我完全省略它们),我都会得到相同的结果。

还有什么我需要做的吗?