Как присвоить значение пустым тегам элемента в xml (самозакрывающиеся элементы) с помощью XSLT - PullRequest
0 голосов
/ 24 августа 2010

Привет, как преобразовать следующий пустой тег элемента в следующий xml

 <LIST_R7P1_1>
 <R7P1_1>
  <ORIG_EXP_PRE_CONV /> 
  <EXP_AFT_CONV /> 
  <GUARANTEE_AMOUNT /> 
  <CREDIT_DER /> 
 </R7P1_1>
 </LIST_R7P1_1>

в следующий формат, используя xslt

 <LIST_R7P1_1>
 <R7P1_1>
  <ORIG_EXP_PRE_CONV >0<ORIG_EXP_PRE_CONV /> 
  <EXP_AFT_CONV >0<EXP_AFT_CONV /> 
  <GUARANTEE_AMOUNT >0<GUARANTEE_AMOUNT /> 
  <CREDIT_DER >0<CREDIT_DER /> 
 </R7P1_1>
 </LIST_R7P1_1>

Ответы [ 2 ]

0 голосов
/ 25 августа 2010

Эта таблица стилей:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>
    <xsl:template match="*[not(node())]">
        <xsl:copy>0</xsl:copy>
    </xsl:template>
</xsl:stylesheet>

С этим входом:

<LIST_R7P1_1>
    <R7P1_1>
        <ORIG_EXP_PRE_CONV />
        <EXP_AFT_CONV />
        <GUARANTEE_AMOUNT></GUARANTEE_AMOUNT>
        <CREDIT_DER></CREDIT_DER>
    </R7P1_1>
</LIST_R7P1_1>

Выход:

<LIST_R7P1_1>
    <R7P1_1>
        <ORIG_EXP_PRE_CONV>0</ORIG_EXP_PRE_CONV>
        <EXP_AFT_CONV>0</EXP_AFT_CONV>
        <GUARANTEE_AMOUNT>0</GUARANTEE_AMOUNT>
        <CREDIT_DER>0</CREDIT_DER>
    </R7P1_1>
</LIST_R7P1_1>

Но, с тем же входом, это выражение XPath:

sum(/LIST_R7P1_1/R7P1_1/*/text())

Результат:

0
0 голосов
/ 24 августа 2010

Поскольку вы не опубликовали ни один из своего собственного кода (то есть того, что вы уже пробовали), я расскажу вам, как решить проблему без предоставления кода: Google «XSL identity transform», затем добавьте несколько конкретных шаблонов. для тегов, которые вы хотите изменить. Конкретные шаблоны должны будут «копировать» входные узлы и их атрибуты при добавлении текстового дочернего узла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...