问题标签 [msxsl]

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 投票
3 回答
65313 浏览

xml - XSL:避免将命名空间定义导出到生成的 XML 文档

我想从一些 XML 文件中获取数据并将它们转换为新的 XML 文档。但是,我不希望 XSLT 中命名空间的定义出现在结果文档中。

换句话说:

来源:

样式表:

结果:

我正在使用 msxsl 进行转换。

0 投票
1 回答
13837 浏览

xslt - msxsl.exe 的继任者?

我们打算将我们的框架从 msxml4 迁移到 msxml6。我们还在哪里使用 msxsl.exe。正如命令行 msxsl.exe -u 6.0 版告诉我的那样,它似乎只支持最高 4.0 的 MSXML 版本。是否有 msxsl.exe 的继任者?任何替代的命令行处理器?

0 投票
1 回答
2357 浏览

.net - 在引用的 XSL 模板中使用程序集编写脚本

有两个 XSL 文件。一个包括另一个使用<xsl:include>. 主模板根据节点值决定调用哪些实际模板,包含的模板包含实际的转换规则。这里没什么特别的。

但包含的文件有一个脚本块:

user:escape() 函数稍后在包含的模板中使用。

现在,我使用 VS2008 XSLT 调试器。

主模板调用<xsl:apply-templates>和包含的模板执行。并且出现 FileNotFound 异常,“无法加载文件或程序集 'MyEscaper, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' 或其依赖项之一。系统找不到指定的文件。”

现在,如果我只转到包含的文件并像它是一个独立的模板一样执行它,而不是包含在任何东西中,那么一切正常。找到程序集并调用函数,但显然结果没有意义,因为模板设计为包含。

那么问题来了——为什么在包含模板的情况下系统找不到程序集?

更多信息

文档指出“程序集路径名称被解析两次 - 一次在编译期间,一次在执行期间。” 如果我故意在路径中打错字,我会得到相同的 FileNotFound 异常,但格式不同,系统说它找不到file://C:\Absolute\Path\MyEscaper.dll。但是,当路径正确时,该异常声称它找不到MyEscaper.dll, version=blabla, public token=null,并且该异常发生在由 .Net 创建的 CompiledStylesheet.dll 中。我相信已编译的样式表被告知按名称而不是 href 调用程序集,并且由于它不在其临时文件夹中,因此调用失败。

为什么这样?绝对路径在哪里以及为什么会(错误地)转换为相对路径,我该如何控制它?

0 投票
2 回答
461 浏览

xslt - 如何仅使用 XSLT 转换 XML 文件的属性,而保留其他内容?

我有一个如下的xml文件,现在我想使用XSLT对其进行转换,保留所有元素和属性,但是如果它发生在值以“SQL:”开头的属性上,则执行sql并替换具有已解析 SQL 的属性值(它涉及http://msdn.microsoft.com/en-us/library/533texsx(VS.90).aspx。现在我遇到了问题:如何检查当前节点类型是属性,以及如何替换属性值,我基于Visual Studio的默认模板如下:

示例 xml 文件(实际上有很多元素):

默认xslt:

0 投票
2 回答
500 浏览

xslt - 复制 XSLT 中的属性

现在我有一个如下的 XML 文件:

我想用一个XSLT来转换它,这个tamplet中有一个参数来确定应该转换哪个DV:如果参数($dvIndex = 0),那么只需保留所有元素和属性,只需转换attriform属性以“SQL:”开头的值,如果($dvindext > 0),只需转换特定的DV,(删除其他DV)。现在我写XSLT如下,但它错过了DM的属性,我不知道如何复制DM的属性。不知道有没有更好的解决办法。XML 文件:

这个问题也和我的问题2#有关(How to only convert an XML file's attribute using XSLT, and leave the other content?

非常感谢!

0 投票
1 回答
10786 浏览

xml - 如何传递参数并在我的 xslt 中使用它

我有一个 xml 文件和一个相关的 xslt 文件。我正在使用 msxsl.exe,我需要将参数作为命令行参数传递并在我的 xslt 文件中使用它。我怎样才能做到这一点???

命令:

如何检索india我的 xslt 文件中的值?

0 投票
3 回答
4605 浏览

xml - xml 使用 xsl 合并两个文件?

我需要合并两个相似的 xml 文件,但只有在常见标签上匹配的记录,例如<type>在以下示例中:

file1.xml 是

file2.xml 是

所以我有一个输出

在 xsl 中这样做的基础是什么?非常感谢。

0 投票
3 回答
1022 浏览

c# - 如何在 .NET XsltCompiledTransform 中使用 XPath 表达式“document('')”?我是不是该?

我目前正在一个网站上工作,我们正在向支持它的客户端发送 XML+XSLT,以节省带宽。但是,如果客户端不支持它,我们将在服务器端进行转换,并发送生成的 HTML。

在我的 XSLT 中,我非常喜欢使用 XPath:

(返回一个节点集)。这在 Firefox 和 IE 中都很好用,但它不适用于 XsltCompiledTransform - 它告诉我:

相对 URI 不支持此操作。

看起来错误发生在 XmlUrlResolver 中 - 我知道我可以通过其中一个自定义,但除此之外我不确定我应该在哪里寻找。谁能给我任何关于如何让这个表达式起作用的提示?如果需要,我很乐意使用一些 MSXSL 扩展——毕竟,代码只能在服务器端看到。

在更一般的说明上——执行这种 XPath 查询是否常见?我是否陷入了一些我不知道的巨大 XSLT 陷阱?它会做一些疯狂的事情,比如缓慢的网络浏览器停止运行吗?

0 投票
5 回答
3036 浏览

xslt - 如何在 XSLT 中遍历 XML 参数

我有一个通过 XSLT 转换的 XML 文件。我通过 C# 将 XML 作为参数传递给 XSLT。参数的名称是附件,它包含 XML。它是这样写的:

我的 xml 参数看起来像

现在在 XSLT 中,我需要遍历这个 XML 参数并创建一个链接。

这是我的 XSLT

但它不会创建链接。

0 投票
2 回答
7220 浏览

javascript - 在 Internet Explorer 中使用 XSLT 转换 XML

我需要 JavaScript 脚本来通过 XSLT 工作表将 XML 文件解析为 XHTML 代码。我的代码与 Firefox、Opera 和 Safari 兼容。

它是 Internet Explorer 和 Chrome 的无效代码。我知道用于 IE 的 Microsfot.XMLDOM 库,但我不知道如何使用它。如何为 IE 和可选的 Chrome 编写好的代码?