问题标签 [selectsinglenode]
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# - System.Xml.XPath.XPathException:执行 SelectSingleNode("//(artist|author)") 时,表达式必须计算为节点集
有人可以解释一下为什么这不起作用吗?
我正在执行
我得到
但这有效并且即使有很多艺术家节点也不会引发异常
c# - 为什么 SelectSingleNode 返回 null?
我正在使用一个 XML 文档,该文档包含一个类似于此的结构:
我目前正在以这种方式将其从文件加载到 XML 文档中:
但是,当我尝试运行下一行代码时,我遇到了一个问题,并且只有这个特定的文档:
由于使用名为“id”的属性存在问题,我猜测这是返回 null,还是我在代码中遗漏了什么?
c# - 在 SelectSingleNode 中使用 XPath:从 XML 中检索单个元素(如果存在)
我的 XML 看起来像:
某些单独的项目可能存在也可能不存在。假设我想检索元素<Item>
二</Item>
(如果存在)。我已经尝试过以下 XPath(在 C# 中)。
XMLNode node = myXMLdoc.SelectSingleNode("/itemSet[Item='two']")
--- 如果 Item two存在,那么它只返回第一个元素one。也许这个查询只是指向 itemSet 中的第一个元素,如果它在某个地方有一个值为 2 的项作为子项。这种解释正确吗?
所以我尝试了:
XMLNode node = myXMLdoc.SelectSingleNode("/itemSet[Item='two']/Item[1]")
--- 我将这个查询读作,返回<Item>
itemSet 中第一个值 = 'two' 的元素。我对么?
这仍然只返回第一个元素one。我究竟做错了什么?在这两种情况下,使用兄弟姐妹我可以遍历子节点并到达two,但这不是我正在看的。此外,如果两个不存在,则 SelectSingleNode 返回 null。因此,我得到一个成功的返回节点这一事实确实表明元素二的存在,所以如果我想要一个布尔测试来检查两个的存在,上面的任何 XPaths 就足够了,但我实际上需要完整的<Item>two</Item>
元素我的返回节点。
[我在这里的第一个问题,也是我第一次使用 Web 编程,所以我刚刚从过去的 SO 问题中学习了上述 XPath 和相关的 xml 内容。所以要温柔,让我知道我是个傻瓜还是无视任何社区规则。谢谢。]
xml - 在 XML 文档中选择节点时返回 Null
XML 新手。我有一个第 3 方 Web 服务,它提供一个 XML 文档,我必须更新元素值并传回。核心问题是在下面的代码中调用 node.RemoveAll() 方法时出现 NullReferenceException 错误。我正在调用 RemoveAll() 方法,因为每个元素在提供给我时都具有 xsi:nil 属性,如果我在更新元素值之前不删除它,则 Web 服务不会验证 XML。
第 3 方 Web 服务提供的 XML 文档如下:
我见过的其他解决方案使用了 XmlNamespaceManager,但我无法使其工作。此 xml 文档具有为 TaskData 元素指定的命名空间,以及为 RequestInfo 元素指定的不同命名空间。我尝试为每个命名空间指定 XmlNamespaceManager 变量,但得到了相同的结果....在中断模式下将鼠标悬停在 nsmgr 变量上显示“无法评估子项”并且 DefaultNamespace 属性是一个空字符串。
c# - C# SelectSingleNode - 可以递归使用吗?
如,如果我有一个 XML 文档
我想先找到节点“item”的第一次出现然后更新属性,然后我想更新节点“foo”的第一次出现然后更新属性等等,
我的代码如下
虽然,第一次搜索和属性更新工作正常,第二次失败,因为 mySearchNode.SelectSingleNode 返回 null。
问题 - 这段代码有什么根本问题吗?为什么 SelectSingleNode 在第二个实例中没有按预期工作,就它而言,我在 Element 类型的 XmlNode 上执行它。
请协助。
非常感谢,
escaping - Backslash SelectSingleNode Escape
In Javascript I have an XML DOM. I am trying to select a node within the DOM by using SelectSingleNode. Something like cell.SelectSingleNode(stuff [@attrjunk = 'MATCH']). So what I want to match on has a backslash . What do I replace the MATCH with to match on abc\xyz?? I've tried abc\xyz and abc\xyz but neither seems to work unfortunately...
selectsinglenode - 在 IXMLDOMElement 中选择单个节点?
我可以从 IXMLDOMElement 中选择单个节点吗,如果可能的话,请给我一个使用 MSXML 的示例
c# - 解析 XML:我的元素中的冒号导致 XPath 错过它
我有一个加载的 XML 文档并尝试使用 XPath 进行搜索。此文件中的根节点是<t:Transmission xmlns:t='urn:InboundShipment'>
,文件结尾用 . 正确关闭</t:Transmission>
。
我的问题是我不能在不使用后代轴的情况下走树。换句话说,我可以做到:SelectSingleNode("//TransactionHeader[SHIPPERSTATE='CA']")
并得到一个节点作为回报。但我不能做应该等效的事情:SelectSingleNode("/Transmission/TransmissionBody/Transaction/TransactionHeader[SHIPPERSTATE='CA']")
如果我删除了,t:
我可以进行 XPath 搜索/Transmission
并获取整个文件。在t:
那里我只是得到空值。或者,如果我尝试SelectSingleNode("t:Transmission")
使用 XPath 语句出现错误。
我通常不需要查询根元素,所以我应该能够只使用后代轴进行搜索。但是 XML 对我来说看起来是有效的,所以我想知道如何解决这个问题。另外,我不想仅仅因为我不知道如何处理就要求客户删除“t:”。
c# - SelectSingleNode 总是返回 null?
以我的 XML 的这个简化示例为例:
我正在尝试使用 SelectSingleNode 方法选择“错误”节点,但是使用以下代码它总是返回 NULL?
根据我所做的研究,这与名称空间有关,但我根本无法工作。有什么建议吗?
html-agility-pack - HTMLAgilityPack ChildNodes 索引有效,命名节点无效
我正在使用 HTMLAgilityPack 解析 XML API 响应。我可以从 API 调用中选择结果项。然后我遍历这些项目并希望将 ChildNodes 写入表。当我通过以下方式选择 ChildNodes 时:
我得到了正确的 itemId 结果。但是当我尝试时:
我得到“引用的对象的值为‘Nothing’。”
我尝试过“itemID[1]”、“/itemId[1]”和一系列字符串。我已经尝试过 SelectSingleNode 和 ChildNodes.Item("itemId").innertext。唯一有效的是使用索引。
使用索引的问题在于,有时结果中会省略子元素,从而导致索引失效。
有人知道我在做什么错吗?