excel - Xpath解释

标签 excel xml xpath excel-formula

你好,我想问一下,如果我们使用这个 Xpath 到底会做什么。

据我了解,它选择出现在当前节点之前且与当前节点不相同的所有 b 节点。

//b[not(preceding::*=.)]

如果 xml 是这样的:

<a>
 <b>English</b>
 <b>German</b>
 <b>Italian</b>
 <b>Belarusian</b>
 <b>Russian</b>
 <b>Bulgarian</b>
 <b>French</b>
 <b>English</b>
</a>

这会保留节点的最后一次出现还是第一次出现?这是我不明白的。

我认为它应该保留最后一个,但是在 FILTERXML 函数中使用这个 xpath 我给出了保留第一个出现的结果,所以结果是

{"英语";"德语";"意大利语";"白俄罗斯语";"俄语";"保加利亚语";"法语"}

谁能解释一下吗?

最佳答案

这个 XPath,

//b[not(preceding::*=.)]

选择前面没有相同 string value 的元素的所有 b 元素.

人们可以使用此 XPath 仅选择第一个此类元素,从而消除后面的“重复项”。

注释:

  1. 要将范围限制为前面的 b 元素,请使用 //b[not(preceding::b=.)]
  2. 要将范围限制为前面的 b sibling 元素,请使用 //b[not(preceding-sibling::b=.)]

关于excel - Xpath解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59683666/

相关文章:

用于识别节点类型的 XPath 测试

vba - 向自定义功能区按钮 Excel 添加通知

java - 具有 Java 属性的 XML 层次结构

php - 在 Xpath (PHP) 中获取以大写字母开头的标签

java - addProperty 包括带有 XMLConfiguration 的空白

xml - 如何使用 XQuery 提取特定的 XML 记录并以逗号分隔格式输出?

html - 如何在 Xidel 输出中添加换行符?

c# - 将 gridview 导出到 Excel 时无法识别阿拉伯字符

javascript - 将数据导出到 excel/csv 时设置列宽和自动换行属性

excel - Excel 中的字符计数