问题标签 [msxml]

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 投票
1 回答
1681 浏览

msxml - 快速清除 MSXML 文档还是重新创建?

有没有一种快速的方法可以在重用之前清除 MSXML2.DOMDocument 对象的先前内容?我一直习惯于丢弃它们并每次都创建一个新实例,但这让我觉得很浪费,并且分析一些测试用例似乎证实了这一点。

在这种情况下,为了可移植性,我坚持使用 MSXML 3.0,并且我意识到这个旧版本在使用 XPath 选择大型节点集时有一些怪癖。尝试选择整个文档树然后删除它感觉不干净,并且运行速度不如我想要的那样快。MSXML 3.0 使用的“惰性选择”也不能激发信心:

selectNodes 方法

以前,在 MSXML 3.0 及更早的版本中,调用 selectNodes 方法创建的选择对象会逐步计算节点集。如果修改了 DOM 树,而 selectNodes 调用仍在积极地迭代其内容,则该行为可能会更改被选择或返回的节点。在 MSXML 4.0 及更高版本中,节点集结果在选择时完全计算。这确保了迭代简单且可预测。在极少数情况下,此更改可能会影响为适应以前的行为而编写的遗留代码。

我还意识到重用这样的对象需要注意可能在使用之间徘徊的不同属性(SelectionLanguage 等)的当前设置。我认为这应该没什么大不了的,特别是如果重用总是遵循相同的模式。

我想我所追求的是一些干净和快速的方法来清除加载的 DOM 以重用它,或者更多关于为什么重用可能比娱乐的替代方案更糟糕的输入。

0 投票
1 回答
277 浏览

msxml - 请指导我在 XML 节点中使用 MSXML 设置属性。我很震惊


我尝试使用 MSXML 在 XML 节点中设置属性。单独的 IXMLDOMElement 具有成员函数 setatrtribute。所以我得到了文档元素。

我选择了必须使用 selectsinglenode 函数设置属性的所需节点。选择所需节点后,我尝试设置属性。

但是 PElement 指针不会移动到所需的节点。它停留在根节点上。结果:在根本身中添加了属性

有什么办法,我可以将我的 PElement 转移到导致 selectsinglenode 函数的节点。这样我就可以设置属性,。

0 投票
2 回答
2448 浏览

c++ - 在 XML 节点中使用 MSXML 设置属性。我很震惊

我尝试使用 MSXML 在 XML 节点中设置属性。IXMLDOMElement只有成员函数setAttribute。所以我得到了文档元素。

selectSingleNode我选择了必须使用函数设置属性的所需节点。选择所需节点后,我尝试设置属性。

但是PElement指针不会转移到所需的节点。它停留在根节点上。结果:在根本身中添加了属性。

有什么办法,我可以将我PElement的节点转移到导致selectSingleNode功能的节点上吗?这样我就可以设置属性。

0 投票
1 回答
10241 浏览

xmlhttprequest - msxml3.dll:指定资源下载失败-使用XMLHTTP时

我有一个 java 脚本代码片段,我在其中向远程服务器页面发出 XMLHTTP 请求。以下是我的代码

执行最后一行 (send()) 时,我收到类似“msxml3.dll:指定资源下载失败”的错误。. 我的开发机器在 Win XP SP 2 上运行

任何人都可以帮助摆脱这个吗?

0 投票
0 回答
90 浏览

xml - 用于 xml 的 RegEnumkeyEx

在这里,假设 xml 作为一个注册表,computer 是一个注册表键,它有键盘、鼠标、硬盘,这些是计算机的子键。现在你能帮我吗,如何使用 MSXML 和注册表函数从 xml 枚举子键。

0 投票
2 回答
3205 浏览

xml - 在 MSXML/ASP 中解析 UTF-8 编码的 XML

我在 HTTP POST (x-www-form-urlencoded) 的接收端,其中一个字段包含 XML 文档。我需要接收该文档,查看几个元素,并将其存储在数据库中(供以后使用)。该文档为 UTF-8 格式(并具有适当的标题),并且可以包含许多奇怪的字符。

当我收到数据时,如下所示:

我可以从 DOM 文档中挖掘出来的所有内容仍然是 UTF-8 格式。例如,本文档(大体简化):

总是出来

如果我查看 xmlDoc.XML,我会得到:

它从标头中删除编码(因为我在 VBScript 中使用的任何字符串都是“与编码无关的”,这是有道理的),但它仍然是表示 UTF-8 编码文档的字符序列。

就好像 MSXML 不关心标头中的编码信息一样。是 MSXML 的问题,还是帖子数据的编码问题?它是“双重编码”的一种形式,首先是 UTF-8(其中某些字符用几​​个字节写入),然后是一个字节一个字节的 urlencoded(“ä”实际上是作为 %C3%A4 发送的)。

我不想硬编码任何东西,比如假设它总是 UTF-8(因为它很可能在未来的某个时候是 UTF-16)。我也不能对任何其他字符集(例如 iso-8859-1)进行“硬转换”,因为数据可以包含西里尔字母和阿拉伯语字符。我应该如何解决这个问题?

0 投票
1 回答
407 浏览

.net - 在 XSLT 转换期间msxml 无法正确关闭标签

我正在尝试使用 C# 解析 RSS 提要,并且需要使用 XSLT 对其进行转换。这是我的 XSLT 的一个片段:

使用随机 RSS(corriere della serra,这可以通过 XML Spy 正确呈现:

但是当使用 Microsoft .net 工具(使用我的代码或使用 Visual Studio XSLT 调试器)时,我得到:

</link>标记根本不输出。如果我将“链接”更改为“XXX”,则效果很好,但不幸的是,这不是一个选择。

知道这里发生了什么吗???

0 投票
1 回答
1703 浏览

versioning - MSXML:如何询问 IXMLDOMNode 它来自哪个版本的 MSXML?

我怎么能问IXMLDOMDocument2是什么版本的 MSXML?给定一个IXMLDOMDocument2我需要创建另一个相同版本的文档。

如果你从不同版本的 MSXML 中给出一个 IXMLDOMDocument,你会从 msxml 中得到一个异常:

混合来自不同版本的 MSXML 的对象是错误的。

微软内部可以询问接口它来自哪个版本的 MSXML,我需要访问相同的东西。


考虑以下用伪代码编写的假设函数:

问题是,如果 IXMLDOMNode 来自,比如MSXML6。创建DOMDocument的是版本 3(因为 Microsoft 在 MSXML 中的版本依赖性)。这将导致

抛出 COM 异常:

既然微软能够询问一个接口它来自哪个版本的 MSXML,我应该能够做同样的事情,但是怎么做呢?

或者,给定一个IXMLDOMNode,我如何构造一个XMLDOMDocument相同版本的对象......

0 投票
3 回答
3393 浏览

xml - EOutOfMemory 使用 Delphi 创建大型 XML

我正在使用 Delphi 从关系数据库中的数据创建 XML 文档。它在小型数据集上测试良好,但是当我尝试将数据集的大小扩展到生产级别时,它最终在节点创建期间出现 EOutOfMemory 异常。

我正在使用放置在表单上的 TXMLDocument(MSXML 作为供应商),我的代码通常如下所示:

这个部分以及许多其他类似构造的部分适用于不同的数据库表,执行了很多次。在此示例中,ANode 是传递给函数以用作容器的 IXMLNode。

我不希望磁盘上生成的 XML 文件超过 10 兆字节。我假设我在创建和处理 XMLNodes 时以某种方式泄漏了内存,但我对接口不够熟悉,不知道如何追踪我的问题。

0 投票
1 回答
1384 浏览

xml - Delphi:无效的 XML 通过 MSXML 验证

我试图在 MSDN 上重写一个 JScript 示例,以便针对某些模式验证 XML。

作为第一次尝试,我使用了示例中使用的 sl-valid.xml、sl-notValid.xml 和 sl.xsd 文件。

我的代码如下:

当我尝试 sl-notValid.xml 文件时,我仍然得到“XML 验证正常”。有没有人见过这个?上述代码与 JScript 示例http://msdn.microsoft.com/en-us/library/ms764717%28VS.85%29.aspx之间的根本区别是什么?