您的位置:首页> 日志> 前端技术 正文
DTOP

读取模型中选项字段

leo | 2015年10月03日 |

>>收藏本文 已有 0条评论

读取模型中选项字段

根据分析发现,模型字段是以xml格式存放在表:PE_Model 里, "Field"字段中
选项字段的具体格式如下图所示
 
如果想在选项字段中读取这些自定义选项内容
最初的想法是把Field字段传入JS中,以xml字符串形式读取字段。或者是把Field字段输出到页面,用JS获取XML文件再读取里面的节点。
一开始否定了后者这个方法,原因是专门找一个节点模板的页面读取XML,这个方法不太通用。
但在尝试以xml字符串的形式读取节点方法时,碰不到小问题,比如字段中存在换行、单引号双引号转义等问题,纠结了一天还是没找到办法解决。
经过一夜的思考,最终还是转向一个另类的方法
通过xpath函数 substring-after、substring-before 截取之前之后的字段,找到这个选项内容
 
<xsl:value-of select="substring-before(substring-after(substring-before(substring-after(Field,concat('Id=&quot;',$fieldName,'&quot;')), '&lt;/FieldInfo&gt;'),'&lt;string&gt;'),'&lt;/string&gt;')"/>
 
输出结果:
行政许可|1$$$行政处罚|2$$$行政强制|3$$$行政征收|4$$$行政给付|5$$$行政确认|6$$$行政奖励|7$$$行政检查|8$$$行政监督|9$$$其他行政权力|10
 
最后一步就是拆分,貌似xstl中想不到什么好方法拆分,还是在JS中完成吧
 
  1. var type= '{PE.Label id="获取模型选项字段" /}'
  2. var qltype= ''
  3. $(document).ready(function(){ 
  4. var arr= type.split('$$$'); 
  5. var arr2; 
  6. var ison; 
  7. for (i=0;i<arr.length ;i++ ) 
  8. {  
  9.     arr2= arr[i].split('|'); 
  10.     gohref= '/Category_{PE.Label id="父节点或自身" nodeId="44981" /}/Index.aspx?qlType=' + arr2[1]; 
  11.     if( qltype == arr2[1]){ison = 'on'}else{ison = ''}; 
  12.     $("#qlType").append("<li class='li" + (i+1) + " " + ison + "'><a href='" + gohref + "' >" + arr2[0] + "</a></li>"); 
  13.     $("#bigCategory").append("<option value='" + arr2[1] + "'>" + arr2[0] + "</option>"); 
通过split函数分组拆分相信大家都懂的,就不作解释了。