如果第一个元素为空,则选择第二个元素的 XPath

马塞拉

我有一些有时看起来像这样的 XML:

<object>
    <item>
        <name>Item Name</name>
    </item>
 </object>

然后有时会缺少 Name 元素并有另一个名称:

<object>
    <item>
        <name/>
        <altname>Item Name 2</altname>
    </item>
 </object>

我需要的背后的逻辑是:

如果有一个值,请使用它。如果没有,请使用 .

我尝试调整我在这里找到的内容:

XPath:默认为“节点 A”,如果“节点 B”不为空,则选择“节点 B”

但无济于事......有什么想法吗?

zx485

使用 XPath-2.0 及更高版本,您可以使用

if (item/name !='') then item/name else item/altname

仅使用 XPath-1.0 会有点棘手,但这会起作用:

item/name[. !=''] | item/altname[../name ='']

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

XPath-仅第二个级别元素的第一个元素

XPath选择许多元素的第二个元素,除非只有一个元素存在

XPATH:如何在第一个元素组中获取第一个元素组的.length和第二个元素组的.length?

使用 xpath (selenium) 获取第二个实例的第一个兄弟姐妹

Python xpath,类第二个元素

Xpath仅选择元素的第一个实例

XPATH的第一个元素

如何在XPath中选择第二个div元素?

如何通过XPath选择第一个和最后一个元素?

如何使用Xpath选择第二个td?

如何在XPATH中选择具有相同属性ID的第二个元素?

如何在Excel列表中选择第一个(第二个,...)非空元素?

Xpath通配符仅返回第一个元素

如何仅选择第二个li元素的第一个孩子

如何添加第二个 css 选择器 xpath,其中相同的元素出现不止一次

Appium - 通过 xpath c# 查找第二个元素

XPath在下拉列表中选择第一个元素

在水豚中使用xpath选择第一个元素

Java XPATH 只选择 child 的第一个元素

如何使用XPath选择具有特定属性的第一个元素

为每个第一个元素获取XPath并计算任何XML输入的同级事件

如果第二个元素相同,则将列表中的第一个元素合并为元组?

XPath,其ID与第二个元素的链接属性和其他属性匹配的元素的返回值?

在第一个元素前面显示第二个 <span> 元素

从特定的第一个元素获取向量对的第二个元素

单击第一个元素,更改第二个元素的样式

如果第一个为空,则switchIfEmpty不会从第二个可观察值发出值

Excel,如果第一个为空,则使用第二个索引匹配

在嵌套列表中从第一个列表中选择第一个元素,从第二个列表中选择第二个元素,依此类推