XML:将块替换为'变量'

时间:2014-10-01 11:50:50

标签: xml xml-parsing logback

我有一个logback配置xml文件,我想要做的是创建两个除了filename之外完全相同的appender。 e.g:

<appender name="app1" class="c">
   <encoder> 
      <pattern> My pattern </pattern> 
   </encoder>
   <file> file 1 </file>
</appender>

<appender name="app2" class="c">
   <encoder> 
      <pattern> My pattern </pattern> 
   </encoder>
   <file> file 2 </file>
</appender>

我有没有办法进行&#39; xml变量替换,以便两个appender中的<encoder>块相同?

   <encoder> 
      <pattern> My pattern </pattern> 
   </encoder>

1 个答案:

答案 0 :(得分:-1)

您可以为encoder元素声明实体

<!DOCTYPE configuration [
  <!ENTITY encoder "<encoder><pattern> My pattern </pattern></encoder>">
]>
<configuration>
  <appender name="app1" class="c">
    &encoder;
    <file> file 1 </file>
  </appender>
  <appender name="app2" class="c">
    &encoder;
    <file> file 2 </file>
  </appender>
</configuration>

仍有一些重复(例如class="c"),但没有那么多。