【发布时间】:2018-09-27 20:12:32
【问题描述】:
您好,我正在使用解析 xml 的代码
<a>
<n>SomeVal</n>
<c oldval="1">2</c>
<a>
解析 xml 的 java 代码使用 dom4j (valueOf) 来解析提供 xpath 表达式的标签的值。可以通过使用“c/@oldval”之类的 xpath 表达式来获取 oldval 属性。我想弄清楚的问题是如何判断属性是否存在。因为我需要区分 oldval 属性不存在的情况和它存在且为空白的情况。下面的两个 xml 都会为 oldval 返回相同的值。
<a>
<n>SomeVal</n>
<c>2</c>
<a>
And
<a>
<b>SomeVal</b>
<c oldval="">2</c>
<a>
【问题讨论】:
-
不确定我是否完全理解,但您可以使用 string-length() 函数,如果属性值为空,该函数将返回 0。
-
属性是否存在且为空(即:上面播种的空字符串)或属性不存在,目前无法区分。即:如果您使用 xpath "c/@oldval"