2014-02-20 7 views
0

Внизу мой ввод XMLДобавление атрибутов isuues в XSL

   <ServiceIncident xmlns="http://b2b.ibm.com/schema/IS_B2B_CDM/R2_2"> 
      <ProviderID>INC0011731</ProviderID> 
      <ProviderPriority>4</ProviderPriority> 
      <WorkflowStatus>NEW</WorkflowStatus> 
      <ServiceProvider1> 
       <Person Role="AffectedUser"> 
       <ContactID>ITELLA_BRIDGE_USER</ContactID> 
       <FullName>Chad Whaley</FullName>  
       </Person> 
      </ServiceProvider1> 

Ниже мой код XSL РМКО используя, но IAM не получают требуемую мощность.

  <xsl:template match="r2:Person/@Role">   
      <xsl:attribute name="Role">ReportedBy</xsl:attribute>   
      </xsl:template> 

Моей проблема в том, что я хочу, чтобы получить onemore человек Роль = «ReportedBy» в выходе под ServiceProvider корневого тега и Person роли = «AffectedUser» не следует заменить это значение value.this также должно быть там на выходе.

+1

Как о чтении замечания и ответить на ваш последний вопрос (http://stackoverflow.com/questions/21902249/picking-multiple-attributes-in-xslt), прежде чем задать новый? –

ответ

0

А, я вижу. Я изначально неправильно читал запрос (или был отредактирован с момента моего первого ответа).

Поскольку XSLT - это язык программирования, существует несколько возможных ответов, и вы не дали нам достаточно информации о ваших требованиях, чтобы предпочесть тот или иной. Вот одно предложение:

Предполагая, что ваша таблица стилей основана на преобразовании идентичности с преобразованиями, излагающими исключения (один из лучших способов написания большинства таблиц стилей), добавьте еще один шаблон идентификации, модифицированный для (a) совпадения с Person-with элемент -местной роли и (b) после обработки этого элемента вставить другой, который имеет новую информацию.

<xsl:template match="r2:Person[@Role!='AffectedUser']"> 
    <xsl:copy/>> 
     <xsl:apply-templates select="node()|@*"/> 
    </xsl:copy> 
    <Person Role="ReportedBy"/> 
</xsl:template> 
+0

Это ** заменит ** существующий атрибут @Role, а не ** добавит ** другой, запрошенный (неправильно), IMHO) OP. –

+0

А, я понимаю, о чем они спрашивают. Исправленный. – keshlam

Смежные вопросы