问题标签 [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# - XslCompiledTransform 编译错误
我在 Empty.xslt 文件中有这个 xslt 样式表:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:nrki="http://www.essox.cz/xslt/nrki" xmlns:date="http://www.essox.cz/xslt/date" version="1.0" exclude-result-prefixes="msxsl" extension-element-prefixes="nrki date">
<xsl:import href="C:\Users\pparik.ESSOX\Desktop\Xslt\General.xslt" />
<xsl:import href="C:\Users\pparik.ESSOX\Desktop\Xslt\Nrki\General.xslt" />
<xsl:output method="text" indent="yes" />
<xsl:template match="@* | node()">
<xsl:if test="nrki:IsInLastDays('15042011', 6)">
je
</xsl:if>
</xsl:template>
</xsl:stylesheet>
当我选择菜单项(在 Visual Studio 中)XML / Show XSLT 输出时,我得到了正确的结果。但是当我尝试使用代码(XslCompiledTransform)做同样的事情时,我得到编译错误异常。
知道为什么吗?非常感谢,彼得
c# - XslCompiledTransform 在 xsl:import 上失败
我有几个 XSLT 文件,索引样式表使用 xsl:import 导入布局。VS 说 XSLT 有效,但是 Load 操作引发 xslt 编译异常,它说无法导入我的布局文件。它尝试在 c:\windows\system32 而不是我的项目目录中找到它。
索引.xsl:
和 Layout.xsl:
接下来我尝试在我的 XML 上应用转换:
c# - 将 XML 转换为新的 XML 格式的方法;如果使用对象,限制配置能力?
对将 XML 从一种格式转换为另一种格式的方法有疑问。
我正在从事一项任务,其中我从我无法控制的对象中获取序列化数据。我已经为这个 XML 生成了一个对象。让我们称之为“表单实例”。表单实例的嵌套非常复杂,并且有许多不相关的布局组件和嵌套,我的理解使得很难使用 XSLT 来实现这一点。
我需要获取 Form 实例,并将其属性分配给另一个对象中的值。让我们称另一个对象为“标准格式”。标准格式对象将自己序列化为我最终需要达到的格式。
表单实例是用户填写表单的结果序列化。可以随时更改此表单“定义”,并且像对表单的布局更改这样简单的事情会完全改变结果序列化的嵌套结构 - 一致的是序列化中的某处表示我需要来自的值的控件 - 而且我想要配置我想要的值。
我正在创建自己的 XML“配置文件”,它将允许指定表单实例中的哪些控件最终要加载到“标准格式”对象中。
表单实例的结构如下:
正如您所看到的,我并不介意表单实例中存在字段的位置(如果有人删除组标题或添加一些新布局,它可以随时更改),因为如果我创建一个配置文件,我可以递归地访问它们控制“名称”。
我想让我的“配置文件”足够重用,因为当数据添加到“表单实例”时,可以对我的配置文件进行调整,说“我现在想要这个其他控件已添加到表单定义中”,这会将其写入“标准格式”。此外,我也希望可以从此文件配置最终输出。
“标准格式”对象中的序列化让我得到了我需要的东西——如果我以一种特定于我想要结束的方式使用它(它是灵活的)。但是我想知道,如何将表单实例数据放置到该对象中 - 可配置。如果我将它作为一个对象使用,那么当需要更改生成的序列化格式时,我需要更改代码。
我想错了吗,既然我知道“标准格式”对象输出什么,我可以在“配置文件”中创建一个类似令牌的配置部分以允许指定格式?
例如:在我的“表单实例”上,我至少有 2 个字段,我希望最终以“标准格式”序列化的方式表示。如果有人更改了已定义的基础表单的定义,这两个字段可以随时更改“表单实例”序列化中的位置/嵌套。
由于我们的目标不是使用标准格式对象,而是最终得到它序列化的内容,我是否可以将对象步骤去掉,只对我想要的 XML 建模。例如,如果我向其添加“Person”对象,这就是标准格式将产生的结果。
像这样制作我的 XML 配置文件是否可行:
无需更改“标准格式”模型即可更改所需的输出。如果在这种情况下 Person 被认为是一个演员,它可以在标准格式对象中的“”下,或者它可以嵌套在类似“”之类的其他东西下。我有多个表单,但每个表单中的所有“控件”都将具有相同的输出。所以在这种情况下,主表单将有一堆不同的人都需要以相同的格式出现。
那么,如果我绕过标准格式对象,如果最终我们需要的只是序列化输出,那是不是很糟糕?
谢谢你的任何想法。
c# - 如何复制元素内容而不仅仅是字符串?
我的 XML 中确实有一些样式。XslCompiledTransform 转换的输出结果是没有这些样式标记的 HTML。有没有办法告诉 XslCompiledTransform 保留它们?还是应该 XslCompiledTransform 默认保留它们?
这是我的xml
我的 xslt 只是拉出整个元素
这是我的 C#,除了应用的默认值外,我什么都没有:
我没有从 xslt 进行样式设置的原因是,块可能应用了多种样式,并与随机文本混合在一起。它在段落中设置某些单词的样式。
xml - 注册。XSLT 转换中的 xmlns 问题
我正在尝试使用 C# 中的 XslCompiledTransform 将 xml 从一种格式转换为另一种格式。下面是样式表和源 xml,
当我使用 XslCompiledTransform 进行转换时出现以下异常“状态 Start 中的令牌文本将导致无效的 XML 文档。请确保 ConformanceLevel 设置设置为 ConformanceLevel.Fragment 或 Conformance eLevel.Auto 如果你想写一个 XML 片段。” 如果我从根元素中删除 xmlns 属性,一切正常。为什么会发生这种情况,我该如何解决?
asp.net - VB.NET 中 XslCompiledTransform 和 xslt 的问题
我现在知道了。我有一个必须使用 xslt 工作表转换的 XML 文档。我的代码如下:
我在 xslt.Transform(xmldLookup, Nothing, w) 行收到以下错误:
处于 EndRootElement 状态的令牌 StartElement 将导致无效的 XML 文档。如果要编写 XML 片段,请确保将 ConformanceLevel 设置设置为 ConformanceLevel.Fragment 或 ConformanceLevel.Auto。
这是 XML 文件的内容:
.net - XslCompiledTransform.Transform 64 位内存问题
我们的应用程序使用 XslCompiledTransform.Transform 函数。如果我们在 32 位模式下运行它,行为是正常的,但是在 64 位模式下运行时,内存消耗会跳得太高(并最终抛出内存异常)。相同的代码,相同的机器 - 一个工作而另一个不工作....有没有人看到类似的问题并有解决方法?
谢谢,
c# - 处理 XSLT 文件名 c#
想知道如何最好地处理我在使用 xsltransform 时遇到的问题。长话短说,一切都在我的测试环境中运行,但是当我在服务器上运行它时它崩溃了,因为它试图处理的文件名是另一个程序的输出,我无法控制。
例如。"4Copy (2) of Fed_Around_Six__TFVC020-12.mov.xml" 一个简单的@ 可以解决这个问题,但它实际上是在一个服务上运行的,这个服务会获取目录中该类型的所有文件并一一处理。
我将文件名变量保存在:
但是我用于转换的方法:
仅接受(String, String)
,因此当它看到“Fed_Around_Six__TFVC020-12.mov.xml 的 4Copy (2)”时,它会心脏病发作并将其切断。
我在考虑保存原始名称,重命名,删除空格,转换并重命名。但我认为有一种更聪明的方法来处理它,只是不知道在哪里看。有没有办法告诉 C# 将变量作为文字处理?还是一种不同的转换方法接受这些具有非常糟糕的命名约定的奇怪文件名?
任何有帮助的见解都会很棒!
我从 Eventvwr 收到的错误和异常消息是
无法翻译 \\9g031\Export\4Fed_Around_Six__TFVC020-12.mov.xml 的副本 (2)
OutputName = \\9g031\Export\done\4Fed_Around_Six__TFVC020-12.mov.xml 的副本 (2)
XSL LOC = C:\CXS.xsl
System.IO.IOException:指定的路径无效。
c# - Xsl 用于转型中的新生产线
我有这个代码:
问题是转换后我得到:
我的 xsl:output 带有 indent="no"。
Visual Studio 缩进所有文件。因此,将代码放在一行中,但是
first 不是很可读,VS 会改变我的缩进,所以我想要另一个解决方案。有点儿 :
但它不存在,也不再具有可读性。
其他解决方案可能是:
但是,我如何使用下面的 xsl 处理:
使用:
<xsl:value-of select="normalize-space($foo)"/>
将没有效果原因:在和


之间创建
<xsl:attribute name="href">
<xsl:value-of select="normalize-space($foo)"/>
我xslt 1.0
C# .net 4
一起工作XslCompiledTransform
更多细节:我把我的 XslCompiledTransform 的结果放在一个
c# - 加载后是否可以缓存 XslCompiledTransform 的实例?
我需要在调用 load 方法后保存 XslCompiledTransform 实例的结果,我该怎么做?