我对 xml 很陌生,有没有办法,我可以在 xml 中定义某种表达式,以便在 java 中正确解释它。
我有一个配置文件,我想定义某种表达式,
即#{age > 27 or location != US }
当它被解析时,它会被正确解释。
如果有任何例子,那将有很大帮助。
谢谢
如果您问是否有办法让 XML 解析器做到这一点,那么答案是否定的。
您的替代方法是在尝试解析 XML 之前(即在某种预处理器中)或在解析 XML 之后(即在 Java 代码中)进行“解释”。
jjathman 提到了 Spring 表达式语言。这是在 Java 代码中进行表达式评估的一种方法,但我不知道它是否可以在解析 XML 之前应用。
jjathman 所链接的 Spring 表达式语言的描述主要集中在接线文件中的 EL 上。那里发生的情况是,表达式被 XML 解析器视为文本,Spring bean 基础结构在稍后阶段对表达式进行扩展。除非您的 XML 是 Spring bean 定义,否则该特定描述并不直接适用于您的问题。
在您的类路径中导入 Groovy jar 并使用 Eval.xy 方法。
assert true == Eval.xy(30, "US", ' x > 27 or y != US')
如果你使用 Spring,有一种方法可以做这样的事情。您基本上可以将代码放入特殊表达式中。见http://static.springsource.org/spring/docs/3.0.5.RELEASE/reference/expressions.html#expressions-beandef