xslt добавить текст в jboss properties-service.xml - PullRequest
1 голос
/ 08 сентября 2011

Я хотел бы добавить свойство в system-properties.xml с помощью XSLT.

Текущий файл XML:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE server>
<server>
     <mbean code="org.jboss.varia.property.PropertyEditorManagerService"
             name="jboss:type=Service,name=PropertyEditorManager">
     </mbean>
      <mbean code="org.jboss.varia.property.SystemPropertiesService"
         name="jboss:type=Service,name=SystemProperties">
     <attribute name="Properties">
      my.project.property=This is the value of my property
    </attribute>
    </mbean>
</server>

Я хочу добавить новое свойство внутри атрибута name = "Свойства ".

РЕЗУЛЬТАТ:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE server>
<server>
  <mbean code="org.jboss.varia.property.PropertyEditorManagerService"
         name="jboss:type=Service,name=PropertyEditorManager">
  </mbean>
  <mbean code="org.jboss.varia.property.SystemPropertiesService"
         name="jboss:type=Service,name=SystemProperties">
     <attribute name="Properties">
      my.project.property=This is the value of my property
      my.project.anotherProperty=This is the value of my other property
    </attribute>
  </mbean>
</server>

Спасибо.

1 Ответ

0 голосов
/ 08 сентября 2011

Это простое преобразование - переопределение правила идентификации :

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>
 <xsl:strip-space elements="*"/>

 <xsl:param name="pNewProp" select=
 "'my.project.anotherProperty=This is the value of my other property '"/>

 <xsl:template match="node()|@*">
     <xsl:copy>
       <xsl:apply-templates select="node()|@*"/>
     </xsl:copy>
 </xsl:template>

 <xsl:template match="attribute[@name='Properties']">
        <attribute name="Properties">
          <xsl:apply-templates/>
          <xsl:value-of select="$pNewProp"/>
          <xsl:text>&#xA;</xsl:text>
    </attribute>
 </xsl:template>
</xsl:stylesheet>

при применении к предоставленному документу XML :

<server>
    <mbean code="org.jboss.varia.property.PropertyEditorManagerService"              name="jboss:type=Service,name=PropertyEditorManager"></mbean>
    <mbean code="org.jboss.varia.property.SystemPropertiesService"          name="jboss:type=Service,name=SystemProperties">
        <attribute name="Properties">
         my.project.property=This is the value of my property
     </attribute>
    </mbean>
</server>

дает желаемый, правильный результат :

<server>
   <mbean code="org.jboss.varia.property.PropertyEditorManagerService" name="jboss:type=Service,name=PropertyEditorManager"/>
   <mbean code="org.jboss.varia.property.SystemPropertiesService" name="jboss:type=Service,name=SystemProperties">
      <attribute name="Properties">
         my.project.property=This is the value of my property
     my.project.anotherProperty=This is the value of my other property 
</attribute>
   </mbean>
</server>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...