Функция SplitByValue, использующая отображение XSLT - PullRequest
2 голосов
/ 12 сентября 2011

Как сделать функцию splitbyvalue, используя XSLT?

Ответы [ 2 ]

1 голос
/ 12 сентября 2011
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" indent="yes"/>

    <xsl:template match="/">
        <ACCOUNT>
            <xsl:apply-templates select="//RefCoded/RefCode[. = 'WBS']"/>
        </ACCOUNT>
    </xsl:template>

    <xsl:template match="RefCode">
        <item>
            <BItemNum>
                <xsl:value-of select="../../../../LineItemNum/BLineItemNum"/>
            </BItemNum>
        </item>
    </xsl:template>
</xsl:stylesheet>

Выход:

<ACCOUNT>
  <item>
    <BItemNum>00001</BItemNum>
  </item>
  <item>
    <BItemNum>00001</BItemNum>
  </item>
  <item>
    <BItemNum>00002</BItemNum>
  </item>
  <item>
    <BItemNum>00002</BItemNum>
  </item>
</ACCOUNT>
1 голос
/ 12 сентября 2011
<xsl:template match="/">
<ACCOUNT>
<xsl:for-each select="descendant::RefCode[text() = 'WBS']">
  <item>
    <BItemNum><xsl:value-of select="ancestor::ItemDetail/descendant::BLineItemNum"/></BItemNum>
  </item>
</xsl:for-each>
</ACCOUNT>
</xsl:template> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...