问题标签 [msxml6]
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++ - 错误 C2011:“MSXML2::IXMLDOMImplementation”:“struct”类型重新定义
我正在更改我的 C++ 项目,该项目早期在 VC6 中,现在正在迁移到 VS 2008,以使用 MSXML 6 而不是早期的 MSXML 3。当代码在 VC6 中时,我们通过导入它来使用 MSXML3
这被替换为
在此之后,当我编译项目时,我得到了这个和其他几个类似的错误 Error C2011: 'MSXML2::IXMLDOMImplementation' : 'struct' type redefinition
上述错误在 msxml3.tlh 文件中。
1) 为什么还在使用 msxml3?
2) 我将问题缩小到 MSXML.h,它以某种方式自动包含在我的项目中。为什么是这样?
3) MSXML.h 中引用了哪个版本的 MSXML?
4)为什么VC++会自动包含这么多头文件?如果我不想包含一些头文件怎么办?
5) 在 c++ 项目中使用 MSXML6 的正确方法是什么?#导入,头文件??????
6)我该如何解决这个问题?
随时给我.net。干净多了。VC++ 项目是一团糟。
xml - MSXML 4.0 变成了什么?
我依赖于 MSXML 4.0。
Microsoft 有一个页面提供各种 MSXML 4.0对象的 CLSID 和 ProgID:
但是在我的Vista机器或同事的XP机器上都没有注册ProgID或CLSID。
- MSXML 4.0是否仅随某些版本的 Office(例如Office 2003)一起提供?
- 它最初是随Windows XP一起提供的,但后来的服务包删除了它吗?
- 是否存在安全漏洞,并且已被贬低?
- 它只是被贬低了吗?
我愿意迁移到MSXML 5.0,它在 Windows XP 和 Windows Vista 机器上可用——但我想确保我拥有尽可能广泛的兼容性;我会认为 MSXML 4.0 会比 MSXML 5.0 更广泛地可用。
Microsoft 确实建议我使用 MSXML 6.0:
建议您从早期版本的 MSXML 升级到 MSXML 6.0。MSXML 6.0 比早期的 MSXML 版本提供了安全性和性能改进。
versioning - MSXML:如何询问 IXMLDOMNode 它来自哪个版本的 MSXML?
我怎么能问IXMLDOMDocument2是什么版本的 MSXML?给定一个IXMLDOMDocument2我需要创建另一个相同版本的文档。
如果你从不同版本的 MSXML 中给出一个 IXMLDOMDocument,你会从 msxml 中得到一个异常:
混合来自不同版本的 MSXML 的对象是错误的。
微软内部可以询问接口它来自哪个版本的 MSXML,我需要访问相同的东西。
考虑以下用伪代码编写的假设函数:
问题是,如果 IXMLDOMNode 来自,比如MSXML6。创建DOMDocument
的是版本 3(因为 Microsoft 在 MSXML 中的版本依赖性)。这将导致
抛出 COM 异常:
既然微软能够询问一个接口它来自哪个版本的 MSXML,我应该能够做同样的事情,但是怎么做呢?
或者,给定一个IXMLDOMNode
,我如何构造一个XMLDOMDocument
相同版本的对象......
xml - 有没有办法控制在 MSXML6 序列化过程中哪些标签被折叠?
我创建了一个 MSXML6 DOM 文档,在序列化过程中我想控制空元素的序列化方式:
<tag></tag>
<tag/>
这个答案描述了 C# 的解决方案,但我正在寻找 MSXML 的 ActiveX 接口可能的东西。(对于 VB6 或一些脚本语言)
xslt - msxsl.exe 的继任者?
我们打算将我们的框架从 msxml4 迁移到 msxml6。我们还在哪里使用 msxsl.exe。正如命令行 msxsl.exe -u 6.0 版告诉我的那样,它似乎只支持最高 4.0 的 MSXML 版本。是否有 msxsl.exe 的继任者?任何替代的命令行处理器?
xml - XML 模式中根元素的定义不正确
有一个带有以下无聊根元素的模式:
就我而言,该模式是有效的,例如,Excel 读取它没有问题。
但是,当我尝试使用 MSXML(v3 或 v4 或 v6)针对此架构验证内容时,我得到了主题错误。(我创建了 XMLSchemaCache,当我将加载的模式添加到它时发生错误。)
从 Google 我了解到 MS XML 引擎不符合 W3 标准存在概念问题,必须使用不同的命名空间定义。但是,我既找不到更正确的定义,也找不到对问题的任何体面的解释。我只能在论坛上找到很多没有回复的帖子。
谁能更深入地解释一下这个问题?
编辑
出于某种原因,尽管我通过版本 3、4 和 6 循环了项目引用,但始终使用版本 3。强制切换到 4/6 解决了它。所以 v3 无法解析模式,其他都很好。我相信现在可以关闭。
xml - 检索最旧/最早节点的 Xpath 表达式
我有一个 XML 片段,所以:
我想检索(例如)最古老的州(即“多佛”)的首都。我设法做到了这一点:
//STATES/STATE[DATEOFSTATEHOOD='7 December 1787']/CAPITAL/text()
但不知道怎么说'DATEOFSTATEHOOD={最早的DATEOFSTATEHOOD}'。
有人可以指出我正确的方向吗?
解决方案:马特的解决方案或多或少是正确的。我不得不重新格式化日期(我使用了 YYYYMMDDD),因为正如所指出的,Xpath 1.0 不支持我使用的日期格式。此外,Microsoft 的 XML 库(4.0 和 6.0)返回了带有 Matt 表达式的整个节点列表。逆向测试解决了该问题,使其仅返回最早的节点。
所以:
xml - 使用“一个空格字符”转换 XSLT 文本元素会产生空内容
我有这个传入的 XML 我正在转换(使用 msxsm6 在 ASP 中使用 XSLT):
如果 <Font> 的模板是:
转换似乎消除了源中第二个元素中的空格字符,发出的输出 XML 如下,第二个元素变成没有内容的空元素:
我在 <xsl:preserve-space elements="Font"/>' 上反复试验,但这似乎没有帮助。想法?感谢 Stackoverflow!
c# - 关于msxml6.DLL接口ISAXContentHandler方法调用的查询
我有 C++ 和 C# 方面的知识,但 COM 对我来说是外星人。我有一个 VC++ COM DLL,其中实现了接口 ISAXContentHandler(属于 msxml6.DLL)的所有方法,如 startElement()、endElement、processingInstructions()、characters() 等。即这些接口方法在VC++ COM DLL 中实现。我想将此 VC++ COM DLL 转换为 C# DLL,以便我可以从我的 C# 应用程序调用此转换后的 C# DLL。
我不明白从哪里调用这些接口方法。因为在我的 VC++ COM DLL 中没有“函数调用语句”。
例如:-----VC++ COM DLL中实现的接口方法之一是这样开始的--->
该类正在从 msxml6.dll 实现 ISAXContentHAndler 接口。
我只知道 SAXContentHandler 是一个 XML 解析器。我不知道这个函数的这些参数是什么,而且它们使用 _RPC 关键字和 d 参数名称。而且我不明白,从哪里调用这些函数。
c++ - 如何读取属性和元素值
我有以下 XML:
我需要阅读属性和节点值。我能够获取子节点的数量,但不确定如何获取值: