Dom4j XPath区分空字符串或空字符串
【腾讯云】亏本大甩卖,服务器4核16G 1年370元(带宽12M,系统盘120GB SSD盘,月流量2000GB)!!!!!!
云产品 配置 价格
服务器 1核2G,带宽5M,系统盘50GB SSD盘,月流量500GB 38元/年
MySQL 1核1G 19元/年
服务器 16核32G,带宽18M,系统盘250GB SSD盘,月流量5000GB 1197元/年
点我进入腾讯云,查看更多详情

I have an XML Schema element like this:

<xs:element type="xs:string" name="IsActive" minOccurs="0"> </xs:element>

I'm using dom4j XPath to evaluate the element.

It seems impossible to determine whether element is present in the XML document or if its value is simply "".

I want <IsActive> to be either, 1) "" 2) "anyvalue1" 3) "anyvalue"

Also I would like to know if <IsActive> is present.

XPath valuePath;
Node obj = (Node)valuePath.selectSingleNode(requestElement);

obj.getText() always returns "", even if <IsActive> is not present.

valuePath.valueOf(requestElement); // does the same

So my question is: How to distinguish null and empty string?

#0

How about:

List nodeList = valuePath.selectNodes(requestElement);
if (nodeList.isEmpty()) ...

Update: @Alejandro pointed out that it would be helpful to add explanations.

Apparently selectSingleNode() does not return null or offer any other way to distinguish between an XPath expression and context that result in an empty nodeset, vs. those that yield one or multiple nodes. So that will not meet the present need.

However, selectNodes() returns a List of nodes matching the XPath expression in the given context. So presumably we can use the List.isEmpty() method (or the size() method) to discover whether the XPath matched zero nodes, or non-zero.

If a node is matched, to get the (first) matched node we can use nodeList.get(0):

List nodeList = valuePath.selectNodes(requestElement);
if (!nodeList.isEmpty())
    doSomethingWith(nodeList.get(0));

I have not tested this, but it should get you within reach of your goal.

推荐文章

即使“beginIgnoringInteractionEvents”处于活动状态,也可以单击应用内购买弹出窗口

即使“beginIgnoringInteractionEvents”处于活动状态,也可以单击应用内购买弹出窗口

推荐文章

复杂CoreData查询

复杂CoreData查询

推荐文章

如何在gwt中使用out-dispatch异步实例进行服务器调用

如何在gwt中使用out-dispatch异步实例进行服务器调用

推荐文章

创建Ken Burns效果的问题

创建Ken Burns效果的问题

推荐文章

问题标题邮件php

问题标题邮件php

推荐文章

FastMM无法检测到内存泄漏

FastMM无法检测到内存泄漏

推荐文章

在gridview中居中对齐图标

在gridview中居中对齐图标

推荐文章

iPhone-排列图像

iPhone-排列图像

推荐文章

Ruby正则表达式替换括号中的所有内容

Ruby正则表达式替换括号中的所有内容

推荐文章

使用winforms.NET4在access中导入Excel使我困惑

使用winforms.NET4在access中导入Excel使我困惑

推荐文章

知道php中的时区本机偏移量(当DST不活动时)

知道php中的时区本机偏移量(当DST不活动时)

推荐文章

C++继承问题

C++继承问题

推荐文章

如何使用ASP-classic在数据库中读写utf-8字符?

如何使用ASP-classic在数据库中读写utf-8字符?

推荐文章

距离位置错误

距离位置错误

推荐文章

获取ListView项的名称

获取ListView项的名称

推荐文章

如何在javascript中捕获母版页Iframe中的鼠标空闲状态

如何在javascript中捕获母版页Iframe中的鼠标空闲状态