gpt4 book ai didi

java - 使用java和Xpath检查元素节点是否不包含文本?

转载 作者:行者123 更新时间:2023-12-01 09:47:23 29 4
gpt4 key购买 nike

我是 Xpath 新手。我面临一个问题,我必须从 Xpath 获取 boolean 响应,如果元素不包含任何文本,那么它应该返回 false,否则返回 true。我看过很多例子,没有太多时间学习Xpath表达式。下面是 Xml 文件。

<?xml version="1.0" encoding="UTF-8" ?>
<order id="1234" date="05/06/2013">
<customer first_name="James" last_name="Rorrison">
<email>j.rorri@me.com</email>
<phoneNumber>+44 1234 1234</phoneNumber>
</customer>
<content>
<order_line item="H2G2" quantity="1">
<unit_price>23.5</unit_price>
</order_line>
<order_line item="Harry Potter" quantity="2">
<unit_price></unit_price>//**I want false here**
</order_line>
</content>
<credit_card number="1357" expiry_date="10/13" control_number="234" type="Visa" />
</order>

你能为我指出为这个问题创建 xpath 表达式的正确方向吗?

我想要的是如下的表达式(虚拟表达式)。

/order/content/order_line/unit_price[此时我想进行一个验证,该验证将根据 isNull 或 notNull 的某些检查返回 true 或 false]。

最佳答案

以下 xpath 将执行此操作:

not(boolean(//*[not(text() or *)]))

但此 xpath 还将包含credit_card 节点,因为它不包含任何文本(属性不是 text())。

如果您还想排除具有属性的节点,请使用此..

not(boolean(//*[not(text() or * or @*)]))

编辑完成后,您可以执行此操作..

/order/content/order_line/unit_price[not(text()]

它将返回一个不带文本的节点列表,您可以从那里根据测试的节点数进行测试。

或者返回真/假..

not(boolean(/order/content/order_line/unit_price[not(text()]))

关于java - 使用java和Xpath检查元素节点是否不包含文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37877793/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com