解析xml中cdata标记中的java代码

xml中的cdata标记
……
<arg name="script"><![CDATA[
"Finished".equals(jn.getStep(2).getStatus()) &&"fail".equals(propertySet.getString("action1"))
]]></arg>
……

我用sax解析的时候想提取cdata中的java代码,然后当做布尔判断条件,请问大神们怎么操作……
…………
……
……找到解决办法了!!!……

0、<![CDATA[--只是做字符串处理--]]>:这个是最基础的,解析出来直接用就行了。

1、<![CDATA[--javascript代码--]]> :解析时在js中可以用eval表达式进行字符串->表达式转换。

2、<![CDATA[--java代码--]]>:

因为解析出来肯定是一大堆字符串,所以面临一个比较恶心的问题,如何将复杂的字符串code转换成javacode,初步想到的是 用classloader进行字符串编译处理,不过比较麻烦,详情可以参考:http://blog.csdn.net/luanxj/article/details/1393611

但是这种方法比较恶心,因为对字符串code进行重新编译。突然想到osworkflow的官方配置文件中有cdata中镶嵌java代码的情况,赶紧找到以前做电子流的项目,看了一下源码,才发现它们使用了beanshell,其实就是源码解释语言,几行代码就解决问题了。

第1个回答  2015-07-13
"Finished".equals(jn.getStep(2).getStatus()) &&"fail".equals(propertySet.getString("action1"))
//jn.getStep(2).getStatus()这个方法如果返回Finished 且 propertySet.getString("action1")这个方法返回fail 则整个返回true 否则返回false追问

我了个去,大哥,不是问你java语法啊,是在问如何取cdata中的代码并执行,麻烦看清楚问题好不?

追答

呵呵 真是醉了 什么都不懂来提问 好好学习吧

追问

你是弱智么?看不懂问题么?看你的回答就知道你几斤几两了……java学前班的小屁孩就不要出来秀下限了,哥已经找到方法了,小屁孩赶紧学习学习

追答

呵呵 真是逗 还没出社会的不会说话就不要说话,小心被人干死
问题自己都描述不清楚 在哪儿瞎BB,秀的什么优越感

追问

哥出来工作的时候,你估计还在尿裤子呢,见多了你这种不懂还爱装b的煞笔

相似回答