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

.net - System.Xml 是否使用 MSXML?

我正在开发一个使用少量 XML 文件和 System.Xml 中的一些类的 C# 应用程序。一位同事坚持将 MSXML6 可再发行组件与 .NET 框架一起添加到我们的安装中,但我认为 .NET 框架无论如何都不会使用或需要 MSXML。我很清楚不支持使用 .NET 中的 MSXML,但我认为 System.Xml 本身在理论上可以将 MSXML 包装在低级别。我还没有找到任何明确的 .NET 有自己的实现,但我也找不到任何表明它需要 MSXML 的东西。

帮我解决争论。System.Xml 是否使用 MSXML?

0 投票
5 回答
5303 浏览

xml - 如何以独立于平台的方式使用节点集功能?

我正在编写一些我想在 linux 和 Windows 下使用的 xlst 文件。在这个文件中,我使用了在 MSXML 和 xsltproc 的不同命名空间中声明的节点集函数(分别为“urn:schemas-microsoft-com:xslt”和“ http://exslt.org/common ”)。是否有任何平台独立的方式使用节点集?

0 投票
2 回答
5065 浏览

.net - 如何声明返回节点集的用户定义函数?

我想要这样的东西:

我应该使用什么返回类型,我getNodes()应该在它的主体中放入什么?

0 投票
5 回答
11492 浏览

xml - C++ 中的 MSXML - 漂亮的打印/缩进新创建的文档

我正在使用 MSXML 解析器写出 XML 文件,并带有我从这里下载的包装器:http: //www.codeproject.com/KB/XML/JW_CXml.aspx。效果很好,除了当我从代码创建一个新文档(所以不从文件加载和修改)时,结果都在一个大行中。我希望元素能够很好地缩进,以便我可以在文本编辑器中轻松阅读。

谷歌搜索显示许多人有相同的问题 - 大约在 2001 年左右被问到。回复通常会说“应用 XSL 转换”或“添加您自己的空白节点”。尤其是最后一个让我去 %( 所以我希望在 2008 年有一种更简单的方法来漂亮的 MSXML 输出。所以我的问题;有吗,我该如何使用它?

0 投票
4 回答
5300 浏览

xml - 连接xml文件

我有几个 xml 文件,它们的名称存储在另一个 xml 文件中。

我想使用 xsl 来生成 xml 文件组合的摘要。我记得有一种方法可以使用 msxml 扩展(我正在使用 msxml)。

我知道我可以使用每个文件的内容,select="document(filename)"但我不确定如何将所有这些文件合并为一个。

2008 年 10 月 21 日我应该提到我想对组合的 xml 进行进一步处理,因此仅从转换中输出它是不够的,我需要将它作为节点集存储在变量中。

0 投票
2 回答
710 浏览

xml - xslt 中的嵌套谓词

是否可以在 xslt 中执行以下等效操作:

这在 Visual Studio 2008 中失败,并出现以下错误:

这应该工作吗?这是 XSLT 的 MS 实现中的一个问题,还是有一种方法可以让所有 TagA 节点具有一个 TagB 节点,其 AttrA 等于 AttrAValue 并且其 TagB innerText 等于 TagBValue。

0 投票
2 回答
6647 浏览

c++ - MSXML 选择节点不工作

我正在开发一个自动化测试应用程序,目前正在编写一个函数来比较两个应该相同但可能不相同的 XML 文件之间的值。这是我正在尝试处理的 XML 示例:

(注意可能有多个<subreport>元素,并且在这些元素中,有多个<record>元素。)

我想要的是提取<value>两个文档的标签,然后比较它们的值。那部分我知道该怎么做。问题在于提取本身。

由于我被困在 C++ 中,所以我使用 MSXML,并编写了一个包装器以允许我的应用程序抽象出实际的 XML 操作,以防我决定更改我的数据格式。

该包装器 CSimpleXMLParser 加载 XML 文档并将其“顶级记录”设置为 XML 文档的文档元素。(CRecord 是一个抽象类,CXMLRecord 是其子类之一,它可以单独或按组访问子记录,还允许访问记录的“值”(在 CXMLRecord 的情况下,子元素或属性的值) .) CXMLRecord 包含一个 MSXML::MSXMLDOMNodePtr 和一个指向 CSimpleXMLParser 实例的指针。) 包装器还包含用于返回子项的实用函数,CXMLRecord 使用这些函数返回其子记录。

在我的代码中,我执行以下操作(尝试返回所有<subreport>节点以查看它是否有效):

这总是返回错误。CXMLRecord::GetChildRecords() 的实现内容基本上是

CSimpleXMLParser::SelectNodes() 是:

运行时,肯定会正确地将最高记录设置为<report>元素。我可以用它做各种各样的事情,比如获取它的子节点(通过 MSXML 接口,而不是通过我的包装器)或其名称等。我知道我的包装器可以工作,因为我在应用程序的其他地方使用它进行解析一个 XML 配置文件,并且可以完美运行。

我想也许我对 XPath 查询表达式做了一些错误的事情,但我能想到的每一种排列都不会让人高兴。当我尝试处理这个 XML 文件时,MSXML::IXMLDOMNodeListPtr返回的总是长度为 0。IXMLDOMNodePtr::SelectNodes()

这真让我抓狂。

0 投票
3 回答
17446 浏览

c++ - 如何从 IXMLDOMNode 访问元素属性?

我正在用 C++ 构建一个 XML DOM 文档。我的问题是:我从文档中的一个元素执行 XPATH 查询,我知道它会返回另一个元素。elementPtr->selectSingleNode 调用返回一个 IXMLDOMNode。如何访问该节点的属性?

我的一部分想要将节点向下转换为元素,但我无法让演员工作。

我试过

这会导致以下运行时错误:

我尝试的另一条路线是只使用节点:

这在“parentNode->get_attributes()”处失败。

好像我错过了什么;API 不应该这么难使用。

- 编辑 -

我缺少的是 selectSingleNode 调用失败,给我留下了一个 NULL 指针。你不能调用 QueryInterface ,也不能调用 get_attributes :P

我选择了适合我提出的问题的答案,而不是帮助我意识到我问错问题的答案。

0 投票
3 回答
2752 浏览

delphi - Delphi 和 XPath 函数

我可以在 Delphi 的函数 selectNodes() 中使用 Xpath 节点集函数 position() 从节点列表中只选择一定数量的元素吗?如果我这样做:

一切都很好,我得到了索引为 1 的元素,但是当我尝试时

当我尝试时,我得到异常“未知方法”

我得到“意外的令牌<”。我使用的是 delphi7,我还使用更新版本的 msxml 将新类型库导入到我的项目中。

0 投票
1 回答
1382 浏览

newline - Document.xml 属性的 MSXML 和换行规范化(?)

我创建了以下简单的 xml(使用了 C 转义序列)“ <A>\n</A>”当MSXML(v4 和 v6)使用 IXMLDOMDocument2.xml 序列化 DOM 文档时,它将换行符更改为 dos 格式并返回:“ <A>\r\n</A>”。

当我使用 DOM 仅检索<A>元素内的字符串节点时,我得到正确的单个("\n")字符串。

当然我已经preserveWhiteSpace设置为VARIANT_TRUE

XML.NetXerces 解析器工作正常,并且在序列化 xml 文档时不会修改存储的字符串。

这是 msxml 中的错误吗?任何想法?

谢谢吉里