问题标签 [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.
c# - 如何防止和/或处理 StackOverflowException?
我想阻止或处理StackOverflowException
我从正在编写的XslCompiledTransform.Transform
方法调用中得到的。Xsl Editor
问题似乎是用户可以编写一个Xsl script
无限递归的,它只是在调用该Transform
方法时崩溃了。(也就是说,问题不仅仅是典型的程序错误,这通常是导致此类异常的原因。)
有没有办法检测和/或限制允许的递归次数?或者有什么其他想法可以防止这段代码对我产生影响?
c# - XslCompiledTransform.Load() 引发 System.IO.FileNotFoundException
我的 webapp (ASP.NET 2.0) 在同一台机器上使用 webservice (asmx on 1.1 framework)。在获得 XML 作为回报后,我将它传递
XslCompiledTransform
给将 XML 转换为 HTML,它工作正常。
昨天我System.IO.FileNotFoundException
经常遇到这种问题,不知道是什么原因造成的。
首先看看我认为这是关于 c:\windows\temp 的读/写权限,然后我确保给它完全的网络服务权限(最后也是每个人-_-!)但它没有帮助。
任何想法或解决方案将不胜感激。
iis - StackOverflowException 加载 XsltCompiledTransform
加载 XslCompiledTransform 时,我有一些大的 xslt 崩溃 iis (StackOverflowException),而旧的(不推荐使用的)XslTransform 工作正常。大模板是否存在一些已知问题?奇怪的是,相同的 XslCompiledTransform 在 win32 应用程序中成功加载。
c# - XslCompiledTransform 与 XslTransform 以及如何更好地衡量 OOM?
所以有一段时间我一直在使用 XslCompiledTransform,因为这是微软告诉我需要使用的,因为 XslTransform 已被弃用。最近我不得不将它与具有近 100,000 行的转换一起使用(当然是生成的 xsl)。当我使用我的应用程序时,我很震惊地看到一个 OOM 弹出。不管我做了什么 - OOM 就是我得到的一切......为了咯咯笑,我回到 XslTransform...... 将 XslCompiledTransform 更改为 XslTransform 的完全相同的代码,它工作正常......
谁能告诉我如何解决 OOM - XslCompiledTransform 上是否有一些“swtich”?我不知道您将如何复制确切的问题,但如果有人有任何答案,他们将不胜感激。
谢谢 - 下面的代码:
作品:
OOM 失败
c# - C# 中的 XslCompiledTransform 调试
我已经尝试了又尝试了,但我无法设法进入 XslCompiledTransform 而不必从磁盘加载样式表(通过将 URI 传递到 XslCompiledTransform.Load() 方法)。
我完全知道,如果您通过 URI(如前所述)从磁盘加载样式表或从实现 IXmlLineInfo 接口的 XmlReader 加载样式表,则只能进入 XslCompiledTransform.Transform() 方法。
我已按如下方式加载样式表:
从我读过的各种文献来看,这似乎是启用调试的方式。但是,当我尝试进入 XslCompiledTransform.Transform() 方法时,我收到消息:“当前位置没有可用的源代码”
如前所述,如果我执行以下操作,我可以进入转型:
上述方法是不可能的,因为我不希望不断地从磁盘读取数据。
感谢您的有用评论,我没有意识到微软已经这样做了,我相信这在将来会非常有帮助。
但是,我想我的问题并没有完全清楚。我没有考虑进入加载方法,我想进入转换方法,以便我可以看到 xsl 转换发生了什么。我强调了加载方法,因为您传入的参数指示您是否能够调试转换方法(您必须传入实现 IXmlLineInfo 接口的 XmlReader 才能这样做)。
虽然我可以使用您突出显示的技术进入转换方法,但我只是单步执行代码。尽管我可以通过观察代码来找出转换的原因,但 xsl 调试器会逐行显示实际样式表本身的单步执行(与执行转换的每一行的代码相反)
c# - 设置 XslCompiledTransform 输出设置
我正在编写一些依赖于一个子模块的 XslTransformation 的代码。
由于 XslTransformation 公开了一个名为 Outputsettings 的 XmlWriterSettings 字段,我认为在我的类中公开 XmlWriterSettings 字段也很酷,因此我可以使用我的 IoC 容器通过配置来配置 XmlWriterSettings。
但事实证明,Outputsettings 是一个只读字段,我找不到如何将一个传递给 Transform 的方法(没有 ctor 重载等)。
我是否遗漏了什么,或者是否有一些工厂方法可以使用给定的 XmlWriterSetting 创建 XslCompiledTransform?
问候丹尼尔/蒂格莱尼
.net - XslTransform 与 XslCompiledTransform
XslTransform 似乎已被 Microsoft 弃用,取而代之的是 XslCompiledTransform。从理论上讲,如果我在执行应用程序期间只进行一次转换,那么解释 XSLT(通过 XslTransform)不应该比编译它更快吗?如果是这样,XslTransform 是否写得如此糟糕以至于对 XslCompiledTransform 所做的改进足以弥补它?
xslt - XslCompiledTransform 的最快内存缓存
我有一组 xslt 样式表文件。我需要产生 XslConpiledTransform 的最快性能,所以我想在内存中表示这些样式表。
我可以在应用程序启动时将它们作为 IXpathNavigable 加载到内存集合中,然后在每个请求上将每个 IXPAthNavigable 加载到单例 XslCompiledTransform 中。但这仅适用于没有 xsl:import 或 xsl:include 的样式集。(Xsl:import 仅适用于文件)。
我也可以为每个模板加载许多 XSLCompiledTransform 实例到缓存中。合理吗?
还有其他方法吗?哪个最好?提高 MS Xslt 处理器性能的其他技巧是什么?
.net - XSLT 自闭标签问题
我正在使用 xslt 将 xml 文件转换为 html。.net xslt 引擎不断为我提供空标签的自闭合标签。
例子:
变成
前者是合法的 html,而后者是非法的 html,渲染效果不好。我的问题是:如何告诉 xslt 引擎 (XslCompiledTransform) 不使用自闭合标签。
如果不可能,我如何告诉我的浏览器(在这种情况下为 IE6+)正确解释自闭标签。
c# - 如何解决从字符串加载 XSL 的转换中包含的 XSL?
.NET 2.0/VS2005
我正在尝试使用XslCompiledTransform
该类来执行 XSL 转换。<xsl:include>
我有两个 XSL 文件,其中第一个以语句的形式包含对另一个的引用:
主要.xsl:
现在,如果我可以将“Main.xsl”文件本身作为 URI 加载,我的转换代码将非常简单:
问题是我将 Main.xsl 文件的内容作为字符串接收,需要将该字符串加载为XmlReader/IXpathNavigable
. 这是此时的必要限制。当我尝试使用 做同样的事情时XmlReader/XpathDocument
,它失败了,因为代码在文件夹中查找“Included.xsl” C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\
!显然,XmlResolver
它无法解析相对 URL,因为它只接收一个字符串作为输入 XSL。
我在这个方向上的努力如下:
我曾尝试使用ResolveUri
XmlUrlResolver 的方法来获取Stream
要包含的 XSL 文件的引用,但对如何使用此 Stream 感到困惑。XslCompiledTransform
IOW,除了 Main.xsl XmlReader ,我如何告诉对象使用这个流:
任何帮助是极大的赞赏。对不起,很长的帖子!
供您参考,Exception StackTrace 如下所示: