解析xml中cdata标记中的java代码 50
xml中的cdata标记……<argname="script"><![CDATA["Finished".equals(jn.getStep(2).getStatus())...
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,其实就是源码解释语言,几行代码就解决问题了。 展开
……
<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个回答
展开全部
"Finished".equals(jn.getStep(2).getStatus()) &&"fail".equals(propertySet.getString("action1"))
//jn.getStep(2).getStatus()这个方法如果返回Finished 且 propertySet.getString("action1")这个方法返回fail 则整个返回true 否则返回false
//jn.getStep(2).getStatus()这个方法如果返回Finished 且 propertySet.getString("action1")这个方法返回fail 则整个返回true 否则返回false
更多追问追答
追问
我了个去,大哥,不是问你java语法啊,是在问如何取cdata中的代码并执行,麻烦看清楚问题好不?
追答
呵呵 真是醉了 什么都不懂来提问 好好学习吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询