问题标签 [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# - 需要编辑时使用 XmlDocument 或 XPathDocument 的 C# XslCompiledTransform?
我在这里做几个假设:
- XPathDocument 不可编辑。
- XmlDocument 是可编辑的。
- XPathDocument 对于 XslCompiledTransform 更有效。
既然如此(如果我错了,请纠正我),是否会更好(更有效):
- 使用 XmlDocument 进行修改,然后在转换之前转换为 XPathDocument。有没有优化的方法来做到这一点?
- 只需通过转换坚持使用 XmlDocument。
一些背景知识,我从 web 服务获取复杂的 xml,然后使用 xpath 找到一些需要修改的元素,然后使用 xslt 创建 html。
在此先感谢您的帮助。
c# - .NET Xsl 脚本转换导致“System.Object”未定义或导入
XSL noobie,但完全卡住了!
我有一个使用 c# 脚本函数格式化日期的转换,当我在 VS 2008 中并运行“显示 xml 输出”时,这工作正常,输出正是我想要的。
但是,当我尝试使用代码运行它时,我得到了错误
未定义或导入预定义类型“System.Object”
调用转换的函数看起来像这样,在我开始使用脚本之前它非常基本并且有效
XSL 转换是这样的..
.net - 方法名称中的连字符,是否可以在任何 .NET 语言中使用?
我需要支持一个名为“send-request”的方法作为要在 XSLT 转换中使用的扩展函数。这是由 上的扩展对象提供的XslCompiledTransform
。与扩展对象相比,很酷的一点<msxsl:script>
是,我不必使用<msxsl:script>
,您只需声明命名空间并调用函数。不好的是函数名必须与 CIL 方法名完全匹配。
所以,我想知道,是否有一种 .NET 语言支持方法名称中的连字符?不需要符合 CLS,该方法是使用反射调用的。
或者,我可以使用一些修改程序集 IL 的技术来更改方法名称吗?
或者,有没有办法拦截反射GetMethod
调用并欺骗调用者存在“发送请求”方法,但返回“发送请求”方法?
c# - 使用 XmlCompiledTransform 合并两个 XPathDocument
我不可能是第一个这样做的人,使用 XSLT 合并两个文档似乎是一种常见的做法。但是,我似乎无法在 ol' 互联网上找到一个示例。
我有两个 XML 文档作为 XML 字符串从 SQL Server 中检索。我想用来XslCompiledTransform
合并这两个文件。我知道默认情况下XslCompiledTransform
会关闭 XSLdocument()
功能。我在XsltSettings
创建XslCompiledTransform
对象时使用了它。
我对如何将第二个文档“添加”到转换的理解是使用 anXsltArgumentList
并使用该AddParam()
方法并添加一个XPathNavigator
对象:
但是,任何尝试访问添加的文档都会导致错误或不返回任何内容。- C#:
XSLT - 只访问添加的文档,而不是加载了转换的文档。
XML
我知道我遗漏了一些明显的东西,但这不仅仅是令人沮丧。我知道文档被添加为参数,但我找不到如何访问作为参数加载的文档的示例。
任何帮助将不胜感激。请记住,上面的代码是一个正在进行的工作,并且是在数百次尝试中使其工作的两次之间,所以如果看起来有点奇怪,可能是因为它在尝试之间。
asp.net - 如何通过 ASP.NET 从 xsl 文件中检索 xsl:输出媒体类型值
有没有办法检索媒体类型值?例如用于获取 xsl:output 方法的 OutputSettings.OutputMethod。
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 试用代码:
' ------------------------------------------------- ---------------------
.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 感兴趣。有什么特别需要我注意的吗,或者这个非常大的选择声明只是一个选项。
c# - XslCompiledTransform 的 XML 大小限制
XslCompiledTransform
在 .NET (3.5)中应用 XSLT 的 XML 大小是否有任何限制?此外,传递给 XSLT 的参数长度是否有任何限制?
更新:我不是指参数的数量,而是作为参数传递的字符串的长度和应用 XSLT 的 XML 文本的长度。
c# - 如何将 XslCompiledTransform 的输出转换为 XmlReader?
我有一个XslCompiledTransform
对象,我想要一个XmlReader
对象中的输出,因为我需要通过第二个样式表传递它。我有点困惑——我可以成功地转换一些 XML 并使用 aStreamReader
或 an读取它XmlDocument
,但是当我尝试 an 时XmlReader
,我什么也得不到。
在下面的示例中,stylesheet
是我的XslCompiledTransform
对象。前两个Console.WriteLine
调用输出正确的转换后的 XML,但第三个调用没有给出 XML。我猜这可能XmlTextReader
是期待文本,所以也许我需要将它包装在 StreamReader 中..?我究竟做错了什么?
c# - XElement 和 XslCompiledTransform 的问题
我在使用XElement
和的组合时遇到了一些麻烦XslCompiledTransform
。我把我正在使用的示例代码放在下面。如果我使用该GetXmlDocumentXml()
方法获取输入 XML,它工作正常。如果我改用该方法,则在调用以下方法时GetXElementXml()
会得到一个:InvalidOperationException
Transform
XslComiledTransform
处于 Start 状态的标记文本将导致无效的 XML 文档。如果要编写 XML 片段,请确保将 ConformanceLevel 设置设置为 ConformanceLevel.Fragment 或 ConformanceLevel.Auto。
两者上的CreateNavigator
方法XElement
并XmlDocument
返回一个XPathNavigator
. 什么额外的东西正在XmlDocument
做这一切工作,我怎么能做同样的事情XElement
?我只是在做一些疯狂的事情吗?