2

XSL1.0スタイルシートでグローバル変数を作成するのに問題があります。変換しようとしているXMLにあるXMLタグの値から変数を作成したいと思います。私のXMLは次のようになります。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<config name="test report" xmlns="http://www.example.com/CONFIG">

    <the_one_i_want>1000</the_one_i_want>

    <!-- lots of other stuff -->

</config>

そして、これが私のXSLの外観です。

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:CONFIG="http://www.example.com/CONFIG">

    <xsl:output method="html"/>

    <xsl:variable name="normal_global_variable">100</xsl:variable><!-- This works fine -->
    <xsl:variable name="variable_from_xml"><xsl:value-of select="/config/the_one_i_want/value"/></xsl:variable><!-- This does not work -->

    <!-- lots of other stuff -->

</xsl:stylesheet>

したがってvariable_from_xml、値は1000、になると思いますが、そうではありません。私は何が間違っているのですか?

PSという名前のXMLタグthe_one_i_wantは一意であり、私のXMLに1回だけ表示されます。

4

1 に答える 1

3

問題は名前空間の1つです。必要な要素は、名前空間(XSLTで既に定義済み)に<the_one_i_want>バインドhttp://www.example.com/CONFIGされています。

したがって、これを変更するだけです。

<xsl:variable name="variable_from_xml">
  <xsl:value-of select="/config/the_one_i_want/value"/>
</xsl:variable>

これに:

<xsl:variable name="variable_from_xml" select="/CONFIG:config/CONFIG:the_one_i_want"/>

または、さらに簡単に:

<xsl:variable name="variable_from_xml" select="/*/CONFIG:the_one_i_want"/>
于 2012-12-12T14:48:17.877 に答える