2009-07-18 10 views
0

私はこのようなXMLがある場合:XSLTで名前空間を扱う方法は?

<sample> 
    <a:element1 xmlns:a="..." /> 
    <b:element2 xmlns:b="..." /> 
    </sample> 

を、XSLが原因プレフィックスa:b:<sample>の2つのつの子ノードを見つけることができないようです。

2つの接頭辞と名前空間宣言を削除すると、それらが見つかります。

問題は、元のXMLファイルについては何もできないということです。では、どうすれば<element1><element2>を見つけることができますか?

答えて

1

これは動作するはずです:

<xsl:stylesheet 
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform' 
     xmlns:a="http://nsa" 
     xmlns:b="http://nsb" 
     version='1.0' 
     > 
<xsl:template match="sample"> 
    <xsl:value-of select="a:element1/@id"/> 
    <xsl:value-of select="b:element2/@id"/> 
</xsl:template> 

</xsl:stylesheet> 
関連する問題