取得标识符相同的子节点集
最近项目遇到这样的一样的一个需求,A栏目要读取C、D、E、F...栏目下的所有与A栏目名字相同的子栏目的内容,B栏目要读取C、D、E、F...栏目下的所有与B栏目名字相同的子栏目的内容;不知大家是否能看得明,如果看不明可以看一下下面的例子:
一级栏目 | 二级栏目 | 三级栏目 | 说明 |
最新动态 | 调取栏目一、栏目二...下的最新动态 | ||
图片资料 | 调取栏目一、栏目二...下的图片资料 | ||
视频资料 | 调取栏目一、栏目二...下的图片资料 | ||
工作室 | 栏目一 | 最新动态 图片资料 视频资料 |
|
栏目二 | 最新动态 图片资料 视频资料 |
||
栏目三 | 最新动态 图片资料 视频资料 |
||
栏目四 | 最新动态 图片资料 视频资料 |
||
栏目五 | 最新动态 图片资料 视频资料 |
||
...... | 最新动态 图片资料 视频资料 |
看上面的表大家应该明白这里栏目信息的读取关系了吧,有的人可能会想到直把对应节点的ID填上去就可以了,这是栏目固定的情况下才能这样做。但这里的二级栏目可能还会有栏目五、栏目六...,这样就只能通过标签动态获取对应的节点ID了。翻一下系统默认的那些标签发现没有能这样获取节点集的标签,只好自己做一下,如果下次有遇到这种情况的同学就可以直接拿来用了。
因为这里的栏目名都是一样的,所以节点的标识符都是一样的,这样的好办了,只要查找到“工作室”下的所有子节点(包括三级节点),然后筛选出符合条件的子节点就可以了;获取到相应的节点ID集后怎么做这个应该不用我多说了吧,这个跟“取得子节点集”的标签是同样的一个用法,SQL语句也很简单
select * from PE_nodes where nodeId in (SELECT * FROM SplitID((SELECT arrChildID FROM PE_Nodes WHERE NodeID = @nodeId), ',')) and NodeIdentifier = '@NodeIdentifier'
@nodeId 是父节点的ID
@NodeIdentifier 对应子节点的标识符
标签的参数也就上面这两个,如果有需要可以跟据实际情况自己添加一下
标签下载:通过标识符取得子节点集.zip
用户登录
还没有账号?
立即注册