与元素类型“属性”关联的属性“值”的值不得包含“<”字符

Sri*_*esh 1 spring spring-batch

<bean id="fileDiffTaskelt" class="org.springframework.batch.core.step.tasklet.SystemCommandTasklet" scope="step">
<property name="command" value="diff #{jobParameters['INPUT_FILE']} #{jobParameters['PREVIOUS_FILE']} |  grep -e '<' -e '>' | grep -x '.\{20\}' > #{jobParameters['FILTERED_FILE']}"/>
<property name="timeout" value="60000"/>
<property name="workingDirectory" value="/tmp/hub"/>
</bean>
Run Code Online (Sandbox Code Playgroud)

我在 IDE 中收到此错误:与元素类型“属性”关联的属性“值”的值不得包含“<”字符。我在我的 grep 命令中使用了这个字符,非常重要,卡在这里。

Roh*_*han 6

您可以使用Escape Strings相同的。

'<'value 属性替换为&apos;&lt;&apos;.

    <property name="command" value="diff #{jobParameters['INPUT_FILE']}
      #{jobParameters['PREVIOUS_FILE']} |  grep -e &apos;&lt;&apos; -e &apos;&gt;&apos; 
      | grep -x '.\{20\}' > #{jobParameters['FILTERED_FILE']}"/>
Run Code Online (Sandbox Code Playgroud)

同样用于适用escape strings'>'

XML 转义字符串