我正在尝试进行条件字符串连接,并想知道是否有比使用if语句更好的东西。
xml看起来类似于
<office>
<department>Math</department>
<room>210</room>
</office>
房间标签是可选的。如果房间标签存在,我想得到一个像'Math / 210'的值,否则只是'Math'。
我正在使用string-join(('//office/department', '//office/room'), '/')
但是当房间标记不存在时会选择“数学/”。
如果我这样做,我可以按照我想要的方式工作
if(exists('//office/room') then string-join(('//office/department', '//office/room'), '/') else '//office/department'
这是唯一的方法,还是有更好的(更清洁的)解决方案?
答案 0 :(得分:1)
I'm using string-join(('//office/department', '//office/room'), '/') but that then selects 'Math/' when the room tag doesn't exist.
这里的引用显然是错误的。它应该是
string-join((//office/department, //office/room), '/')
或更简洁
//office/string-join((department, room), '/')
假设房间元素确实不存在,这应该可以给你你想要的东西。如果&#34;房间&#34;选择一个空序列,应该没有分隔符。当然,如果房间确实存在并且包含零长度的字符串,则这是另一回事。