从外部Context Node XSLT获取价值

时间:2018-03-23 10:20:21

标签: xml xslt

我正致力于使用XSLT将XML片段转换为Excel工作簿,并且我有一点XML。

<RELATORIO>
    <MODULO>
        <NAME>ObtemSocios_P</NAME>
        <VALUES>
          <ROW>
            <DistribuicaoCapital>0</DistribuicaoCapital>
            <Nome>diogo</Nome>
            <PercentagemCapital />
          </ROW>
          <ROW>
            <DistribuicaoCapital>0</DistribuicaoCapital>
            <Nome>ze maria</Nome>
            <PercentagemCapital />
          </ROW>
          <ROW>
            <DistribuicaoCapital>0</DistribuicaoCapital>
            <Nome>Manel</Nome>
            <PercentagemCapital />
          </ROW>
       </VALUES>
    </MODULO>
    <MODULO>
        <NAME>ObtemCapitalSocial_P</NAME>
        <VALUES>
          <ROW>
            <CapitalRegistado>8734652</CapitalRegistado>
          </ROW>
        </VALUES>
      </MODULO>
</RELATORIO>

我像这样进入MODULO上下文

 <xsl:when test="NAME='ObtemSocios_P'">
----
</xsl:when>

我的问题是,当我在&#34; ObtemSocios_P&#34;内部时,如何从<CapitalRegistado>8734652</CapitalRegistado>获得价值? MODULO背景。

1 个答案:

答案 0 :(得分:0)

有许多可能的方法,选择正确的方法取决于文档中的其他内容与您的示例不同。如果你的xsl:when条件是正确的,那么你的上下文项是第一个MODULO元素,你可以使用以下任何一个表达式到达第二个MODULO元素:

following-sibling::MODULO[1]

../MODULO[2]

../MODULO[NAME='ObtemCapitalSocial_P']

//MODULO[NAME='ObtemCapitalSocial_P']

然后,您可以访问VALUES/ROW/CapitalRegistado