问题标签 [selectnodes]

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 回答
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 投票
4 回答
1186 浏览

c# - 如何在 XML 中更深入地导航并在其中附加数据

我已将 XmlDocument 加载到内存中并创建了新的 XmlElement。现在我正在尝试将 XmlElement 添加到路径 /report/section/hosts 但我不知道如何。我可以很容易地将它添加到 XML 的根节点下,但我无法弄清楚如何在 XML 中导航更深层次并只是附加到那里。在伪中,我正在尝试这样做:

doc.SelectNodes("/report/section/hosts").AppendChild(subRoot);

编码:

0 投票
6 回答
28258 浏览

c# - XmlNode.SelectNodes 的基础知识?

我不确定为什么这不起作用。

我有一个已知格式的 XmlNode。这是:

我在一个名为pattern的变量中引用了该节点。我想要一个可迭代的节点集合,每个节点都由上面的 [block-of-xml-to-process] 表示。此时块的名称和结构尚不清楚。[设置名称] 是已知的。

这似乎很简单。我能想到六个应该指向块的 XPATH 表达式。我试过了:

但是,我显然缺乏对 XPATH 或 .SelectNodes 的一些特殊技巧的一些基本了解,因为它们都不能始终如一地工作。

我究竟做错了什么?

0 投票
1 回答
875 浏览

vb.net - 在 For Each 循环中获取 XML 元素的位置

如何在此循环中获取 XML 元素的位置?

我想要的输出是这样的

1 2 3 4 ....

0 投票
1 回答
920 浏览

dom - 使用具有多个替代路径的 selectNodes 或组合 2-3 IXMLDOMNODELIST

只是想知道是否有人可以帮助我编写以下 VBScript 脚本:

我可以做类似的事情吗:

Set obj = something.selectNodes(path1, path2, path3) // 它会在哪里匹配任何一个路径?

或者,如果没有,有没有办法可以组合 selectNodes 返回的内容(IXMLDOMNodeList)?例如

设置 obj1 = something.selectNodes(path1) 设置 obj2 = something.selectNodes(path2)

设置 obj3 = obj1 + obj2

提前谢谢了

0 投票
3 回答
3628 浏览

c# - XmlNodeList(为什么这是空的)

我不明白为什么这个 NodeList 是空的

这里是 XmlFile

在最终脚本中,我想获得一个数组字符串,其中包含其中的每个属性。

谢谢斯特凡

0 投票
1 回答
2505 浏览

vb.net - 如何提取 Atom/RSS

给定一个 URL,如果它有任何 RSS 节点,那么我将添加到数据库中。

例如:

对于此 URLrssDoc.SelectNodes("rss/channel/item").Count大于零。

但是对于原子 urlrssDoc.SelectNodes("rss/channel/item").count等于零。

如何检查 Atom/RSS URL 是否有任何节点?我试过了rssDoc.SelectNodes("feed/entry").Count,但给了我零计数。

结束功能

0 投票
3 回答
411 浏览

c# - 从 XML 中检索属性

为什么运行这段代码...

在命令提示符下产生以下输出?

也就是说,不应该attributes.Count返回 1 吗?

0 投票
1 回答
2866 浏览

c# - 具有多个属性的 XmlNode.SelectNode

我的 xml 文件中的一个节点如下。

我正在使用的代码是 -

我想使用将接受 search_id 和 login_id 作为搜索属性的选择节点?如果 search_id 或 email_id 错误,我想返回 null。我怎么能这样做?

谢谢。卡皮尔

0 投票
3 回答
8274 浏览

html - SelectNodes 和 GetElementsByTagName

SelectNodes 和 GetElementsByTagName 之间的主要区别是什么。