问题标签 [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 回答
3060 浏览

c# - 需要编辑时使用 XmlDocument 或 XPathDocument 的 C# XslCompiledTransform?

我在这里做几个假设:

  1. XPathDocument 不可编辑。
  2. XmlDocument 是可编辑的。
  3. XPathDocument 对于 XslCompiledTransform 更有效。

既然如此(如果我错了,请纠正我),是否会更好(更有效):

  1. 使用 XmlDocument 进行修改,然后在转换之前转换为 XPathDocument。有没有优化的方法来做到这一点?
  2. 只需通过转换坚持使用 XmlDocument。

一些背景知识,我从 web 服务获取复杂的 xml,然后使用 xpath 找到一些需要修改的元素,然后使用 xslt 创建 html。

在此先感谢您的帮助。

0 投票
3 回答
5532 浏览

c# - .NET Xsl 脚本转换导致“System.Object”未定义或导入

XSL noobie,但完全卡住了!

我有一个使用 c# 脚本函数格式化日期的转换,当我在 VS 2008 中并运行“显示 xml 输出”时,这工作正常,输出正是我想要的。

但是,当我尝试使用代码运行它时,我得到了错误

未定义或导入预定义类型“System.Object”

调用转换的函数看起来像这样,在我开始使用脚本之前它非常基本并且有效

XSL 转换是这样的..

0 投票
4 回答
1399 浏览

.net - 方法名称中的连字符,是否可以在任何 .NET 语言中使用?

我需要支持一个名为“send-request”的方法作为要在 XSLT 转换中使用的扩展函数。这是由 上的扩展对象提供的XslCompiledTransform。与扩展对象相比,很酷的一点<msxsl:script>是,我不必使用<msxsl:script>,您只需声明命名空间并调用函数。不好的是函数名必须与 CIL 方法名完全匹配。

所以,我想知道,是否有一种 .NET 语言支持方法名称中的连字符?不需要符合 CLS,该方法是使用反射调用的。

或者,我可以使用一些修改程序集 IL 的技术来更改方法名称吗?

或者,有没有办法拦截反射GetMethod调用并欺骗调用者存在“发送请求”方法,但返回“发送请求”方法?

0 投票
1 回答
1648 浏览

c# - 使用 XmlCompiledTransform 合并两个 XPathDocument

我不可能是第一个这样做的人,使用 XSLT 合并两个文档似乎是一种常见的做法。但是,我似乎无法在 ol' 互联网上找到一个示例。

我有两个 XML 文档作为 XML 字符串从 SQL Server 中检索。我想用来XslCompiledTransform合并这两个文件。我知道默认情况下XslCompiledTransform会关闭 XSLdocument()功能。我在XsltSettings创建XslCompiledTransform对象时使用了它。

我对如何将第二个文档“添加”到转换的理解是使用 anXsltArgumentList并使用该AddParam()方法并添加一个XPathNavigator对象:

但是,任何尝试访问添加的文档都会导致错误或不返回任何内容。- C#:

XSLT - 只访问添加的文档,而不是加载了转换的文档。

XML

我知道我遗漏了一些明显的东西,但这不仅仅是令人沮丧。我知道文档被添加为参数,但我找不到如何访问作为参数加载的文档的示例。

任何帮助将不胜感激。请记住,上面的代码是一个正在进行的工作,并且是在数百次尝试中使其工作的两次之间,所以如果看起来有点奇怪,可能是因为它在尝试之间。

0 投票
2 回答
234 浏览

asp.net - 如何通过 ASP.NET 从 xsl 文件中检索 xsl:输出媒体类型值

有没有办法检索媒体类型值?例如用于获取 xsl:output 方法的 OutputSettings.OutputMethod。

0 投票
1 回答
4845 浏览

xml - 如何从 XslTransform 迁移到 XslCompiledTransform

我有以下代码需要从 VS 2003 (.Net 1.1) 迁移到 VS 2008 (.Net 2+) 但出现编译错误 -

System.Xml.Xsl.XslTransform' 已过时:此类已被弃用。我可能需要改用 System.Xml.Xsl.XslCompiledTransform。但我没有找到可以与原始代码的所有参数一起使用的匹配 Load() 和 Transform() 重载版本。

在 MSDN [How to: Migrate Your XslTransform Code] 我只发现了一些更简单的案例。 http://msdn.microsoft.com/en-us/library/aa983475%28VS.80%29.aspx 但在我的代码中,我看到一些注释暗示使用添加的参数来避免异常,所以我更喜欢使用这些参数。

有人可以帮助迁移此代码吗?

谢谢, 阿塔拉

在我的旧代码中,我同时拥有 xmlDoc 和 xslDoc,所以我现在拥有的编译代码(尚未测试)是:

' ------------------------------------------------- ---------------------
' VS 2008 试用代码:

' ------------------------------------------------- ---------------------

0 投票
1 回答
546 浏览

.net - XslCompiledTransform 对于具有许多 xsl:when 条件的 XSLT 失败

我只是在将 ASP.Net 1.1 应用程序升级到 .Net 3.5 的过程中,我所做的更改之一是使用 XslCompiledTransform 而不是 XslTransform。当我发现使用新方法失败的 XSLT 时,我正在运行一些测试 XSLT 以确保一切正常。

经过一番调查,我发现 XSLT 有一个带有 435 个条件的巨大 xsl:choose 语句,示例如下:-

....为了理智而缩写......

注释掉上面的 xsl:choose 允许转换工作,但是将其保留在当前正在使我的 IIS 应用程序池崩溃,唯一的解决方案是重新启动应用程序池。

由于各种原因,我意识到 435 条件选择语句不是一个好主意(我继承了这段代码,请不要对我不利),我将考虑以另一种方式解决这个特定问题,但是我对为什么以前使用 XslTransform 有效但不适用于 XslCompiledTransform 感兴趣。有什么特别需要我注意的吗,或者这个非常大的选择声明只是一个选项。

0 投票
2 回答
1837 浏览

c# - XslCompiledTransform 的 XML 大小限制

XslCompiledTransform在 .NET (3.5)中应用 XSLT 的 XML 大小是否有任何限制?此外,传递给 XSLT 的参数长度是否有任何限制?

更新:我不是指参数的数量,而是作为参数传递的字符串的长度和应用 XSLT 的 XML 文本的长度。

0 投票
1 回答
2070 浏览

c# - 如何将 XslCompiledTransform 的输出转换为 XmlReader?

我有一个XslCompiledTransform对象,我想要一个XmlReader对象中的输出,因为我需要通过第二个样式表传递它。我有点困惑——我可以成功地转换一些 XML 并使用 aStreamReader或 an读取它XmlDocument,但是当我尝试 an 时XmlReader,我什么也得不到。

在下面的示例中,stylesheet是我的XslCompiledTransform对象。前两个Console.WriteLine调用输出正确的转换后的 XML,但第三个调用没有给出 XML。我猜这可能XmlTextReader是期待文本,所以也许我需要将它包装在 StreamReader 中..?我究竟做错了什么?

0 投票
1 回答
2269 浏览

c# - XElement 和 XslCompiledTransform 的问题

我在使用XElement和的组合时遇到了一些麻烦XslCompiledTransform。我把我正在使用的示例代码放在下面。如果我使用该GetXmlDocumentXml()方法获取输入 XML,它工作正常。如果我改用该方法,则在调用以下方法时GetXElementXml()会得到一个:InvalidOperationExceptionTransformXslComiledTransform

处于 Start 状态的标记文本将导致无效的 XML 文档。如果要编写 XML 片段,请确保将 ConformanceLevel 设置设置为 ConformanceLevel.Fragment 或 ConformanceLevel.Auto

两者上的CreateNavigator方法XElementXmlDocument返回一个XPathNavigator. 什么额外的东西正在XmlDocument做这一切工作,我怎么能做同样的事情XElement?我只是在做一些疯狂的事情吗?