XSLT1中使用XPATH對(duì)含有默認(rèn)名稱空間聲明的XML文檔進(jìn)行查找時(shí)是查不出內(nèi)容的
例如對(duì)于
<requestHierarchySelectResult xmlns
=http://www.lightcc.com/ns xmlns
:cs
="http://www.customsolids.com">
??? <request
>
??????? <created_dt
>05/05/2000 00:00:00</created_dt
>
??????? <created_tm
>01/01/1900 14:02:46</created_tm
>
??????? <cs
:request_id
>100002</cs
:request_id
>
??? </request
>
</requestHierarchySelectResult
>
應(yīng)用
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"?
???xmlns="http://www.lightcc.com/ns"
???xmlns:cs="http://www.customsolids.com">
???<xsl:template match="/">
??????<root><xsl:apply-templates? select="/*/request"/></root>
???</xsl:template>
???<xsl:template? match="*|@*|node()"/>
???<xsl:template? match="request">
??????<gotHere><xsl:value-of? select="."/></gotHere>
???</xsl:template>
</xsl:stylesheet>
是沒(méi)有效果的.
需要給默認(rèn)的名稱空間指定一個(gè)前綴
<
xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"?
???xmlns:lc="http://www.lightcc.com/ns"
???xmlns:cs="http://www.customsolids.com">
???<xsl:template match="/">
???????<root><xsl:apply-templates? select="/*/lc:request"/></root>
???</xsl:template>
???<xsl:template? match="*|@*|node()"/>
???<xsl:template? match="lc:request">
??????<gotHere><xsl:value-of? select="."/></gotHere>
???</xsl:template>
</xsl:stylesheet>
據(jù)說(shuō)XSLT2和XPATH2會(huì)解決這個(gè)問(wèn)題
參考:
???
http://www.edankert.com/defaultnamespaces.html???
http://www.topxml.com/people/bosley/defaultns.asp