日期:2014-05-19  浏览次数:20615 次

一个xml的输出问题
给为大神们求指教,这是什么输出方式啊??或者这是指什么?帮忙解释一下,谢谢
<XML id="gridConfig">
<Config>
<BasicData>test.xml</BasicData>
<Condition />
<!-- 
 o.status,o.groupflag,o.orderno,
f.totalcost,f.fileno,
o.contact,o.adultnum adultnum,o.childnum,o.infantnum,ac.name as seatstatus,o.bookagentname
 -->
<ColumnName>订单编号,状态,团队,总结算价,批文号,联系人,成人,儿童,婴儿,销售单位</ColumnName>
<RowHeight>21</RowHeight>
<Page>
<pageMode>NoPaging</pageMode>
<Server><CountPerPage>16</CountPerPage></Server>
</Page>
<Event><Selection>doselectionchanged</Selection><Enter>doOpen</Enter><Delete></Delete>
<valueIndex>0</valueIndex></Event>
<Modify>
<Column>
<No>1</No>
<Rule>
<![CDATA[
var v = @value.toString().toUpperCase().replace(/\s/g,"");
if(v == 'N') return '未提交';
else if(v == 'S') return '已提交未确认'; 
else if(v == 'L') return '里程支付中'; 
else if(v == 'M') return '里程支付成功'; 
else if(v == 'C') return '已确认未支付'; 
else if(v == 'P') return '已确认正在支付'; 
else if(v == 'B') return '已支付未出票'; 
else if(v == 'T') return '已支付未出票'; 
else if(v == 'O') return '已支付未出票';  
else if(v == 'R') return '已支付未出票'; 
else if(v == 'E') return '已支付已出票'; 
else if(v == 'D') return '已取消';
else return "$value";
]]>
</Rule>
</Column>
<Column>
<No>2</No>
<Rule>
<![CDATA[
if(@value == '1' ) return '团队'
else if(@value == '0' || @value=='' ) return '散客'
]]>
</Rule>
</Column>
<Column>
<No>0</No>
<Rule>
<![CDATA[ 
var v = @value.toString().toUpperCase().replace(/\s/g,"");
return "<a href=\"javascript:doOpen()\">"+v+"</a>";
]]>
</Rule>
</Column>
</Modify>
</Config></XML>

------解决方案--------------------
<![CDATA[ ....]]>就这个标记看不明白吧。
这是定义XML中不作转义处理的文本块,解析时,直接把这部份内容作为XML的解析内容。

比如
<![CDATA[ 
var v = @value.toString().toUpperCase().replace(/\s/g,"");
return "<a href=\"javascript:doOpen()\">"+v+"</a>";
]]>
在这里嵌套了一段JavaScript的代码。

我想你的WEB服务器上应该有XSLT转换工具之类的东东,最终会把这个XML文档翻译成前端的响应。想这种东东应该指某个记录字段的某条记录的值。