0

我对 xml 很陌生,有没有办法,我可以在 xml 中定义某种表达式,以便在 java 中正确解释它。

我有一个配置文件,我想定义某种表达式,
#{age > 27 or location != US }当它被解析时,它会被正确解释。

如果有任何例子,那将有很大帮助。

谢谢

4

3 回答 3

0

如果您问是否有办法让 XML 解析器做到这一点,那么答案是否定的。

您的替代方法是在尝试解析 XML 之前(即在某种预处理器中)或在解析 XML 之后(即在 Java 代码中)进行“解释”。

jjathman 提到了 Spring 表达式语言。这是在 Java 代码中进行表达式评估的一种方法,但我不知道它是否可以在解析 XML 之前应用。

jjathman 所链接的 Spring 表达式语言的描述主要集中在接线文件中的 EL 上。那里发生的情况是,表达式被 XML 解析器视为文本,Spring bean 基础结构在稍后阶段对表达式进行扩展。除非您的 XML 是 Spring bean 定义,否则该特定描述并不直接适用于您的问题。

于 2012-07-10T03:32:42.227 回答
0

在您的类路径中导入 Groovy jar 并使用 Eval.xy 方法。

assert true == Eval.xy(30, "US", ' x > 27 or y != US')
于 2012-07-10T03:59:35.080 回答
0

如果你使用 Spring,有一种方法可以做这样的事情。您基本上可以将代码放入特殊表达式中。见http://static.springsource.org/spring/docs/3.0.5.RELEASE/reference/expressions.html#expressions-beandef

于 2012-07-10T03:06:36.527 回答