2009-07-18 68 views
0

如果我有這樣的XML:如何處理XSLT中的命名空間?

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

似乎XSL找不到<sample>的兩個子節點由於前綴a:b:

如果我刪除了兩個前綴以及名稱空間聲明,則會找到它們。

問題是我無法對原始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>