问题标签 [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 投票
2 回答
62 浏览

xml - 在 XML 文件上运行 XSL 处理器时保留 xmlns 位置

我想使用 xslt 将节点添加到 XML 文档。我使用 msxsl 作为处理器。XML 文档具有以下结构:

XSL 规则插入所需的节点:

编辑:添加了 XSL 命名空间)

但结果已将命名空间属性从Project移至PropertyGroup

编辑:我想要ProjectPropertyGroup输入相同。)

有必要避免它。我怎样才能只添加一个节点而不改变结构?另外,我希望像其他节点一样插入新节点。

0 投票
0 回答
121 浏览

batch-file - 当我在我的 DBML 文件上运行 msxsl.exe 时,它​​会引入回车符,这会弄乱最后的 SQLMetal.exe 步骤

我刚刚从 VS 2015 升级到 VS 2019(以及 Windows 7 到 Windows 10)。我的项目是在批处理文件中使用 SQLMetal.exe 和 msxsl.exe分三个步骤创建和修改 DBML:

  1. 使用 SQLMetal.exe 生成 DataModel.dbml 文件。
  2. 使用 msxsl.exe 添加数据库转换。
  3. 使用 SQLMetal.exe 生成 DataModel.cs 文件。

当我在新环境中运行它时,它给了我一个奇怪的错误:

经过多次试验和错误,我意识到 msxls.exe(我刚刚下载的)在 DBML 文件中的结束列和关联标记之前添加了回车符。这似乎是导致最终 SQLMetal.exe 步骤出错的原因。

我实际上可以在第 2 步之后打开 DataModel.dbml 文件,并将 "\r\n < /Column>" 上的所有内容替换为 "< /Column>" 和 "\r\n< /Assocation>" 到 "< /Association> ",然后第 3 步似乎有效。显然,我不想每次都这样做。

那么,我需要做什么才能运行 msxsl.exe 并且不让它在结束 Column 和 Association 标签之前添加回车符?

msxls 命令如下:

msxsl 的版本是否重要?

0 投票
1 回答
219 浏览

batch-file - 从批处理文件调用 MSXSL

我想创建一个循环遍历包含 xml 文件的文件夹的批处理文件,然后调用 msxsl 来修改它们,并在修改 xml 文件后,复制到具有原始文件名的另一个文件夹。

我试过这个:

但这给了我这个错误:

这是因为输出文件名周围有双引号。我该如何解决这个问题?

0 投票
1 回答
53 浏览

javascript - VBScript 在 Chrome 中不工作,但在 IE 中工作

我在 vbscrpt 中有一堆代码。我需要在 IE 和 Chrome 中工作。我怎样才能使这个功能在 Chrome 和 IE 中工作

0 投票
2 回答
341 浏览

html - 如何在 Windows 10 中使用 msxsl.exe 获取 UTF8 html

我正在使用 msxsl.exe 从 XML 和 XSL 动态生成 HTML 文件。我已经使用 CreateProcess API 用 C++ 编写了代码,并在其中调用了 msxsl.exe。由于在 Windows 7 中输出是 UTF8,我以相同的编码创建了所有相关文件(如 CSS 和 JavaScript)。一切正常。当我在 Windows 10 (LTSC) 中运行相同的应用程序时,没有加载 JavaScript,因为现在使用 UCS-2LE BOM 编码生成 HTML。我尝试在创建进程之前调用 SetConsoleOutputCP(CP_UTF8)。这并没有解决我的问题。无论操作系统如何,我如何获得 UTF8 输出?

0 投票
1 回答
38 浏览

javascript - 在 msxsl 中将节点作为参数传递:来自 XSLT for-each 的脚本 javascript 函数不起作用

我正在使用 MSXML6,并且我已将 AllowXsltScript 设置为 true,以便在我的 VB 程序中启用脚本。

给定以下 XML 输入:

以下 XSL 无法按预期工作:

问题似乎在于在 for-each 中为节点传递“this”。更确切地说,当它试图这样做node.getAttribute(attribute);时,它就会失败。

我得到的错误是“找不到与此错误代码关联的文本。XML 文档必须具有顶级元素。” 在我的 VB 程序中使用 MSXML2.DOMDocument60.transformNodeToObject API 在 Visual Studio 2017 中。

请注意,我不能使用任何在线 XSL 解析器,因为它们默认禁用脚本功能。

对此有什么想法吗?

欣赏它!

0 投票
0 回答
34 浏览

xslt - 变量或参数“XYZ”不能在 XSL 文件的同一模板中定义两次

这是我看到的非常奇怪的问题。当我执行命令时:

这在我的机器上运行(Windows 10 Enterprise,版本 20H2),但是当我在具有相同操作系统的其他机器上运行相同时,它说:

为什么会这样?两台机器的代码库完全相同。