再次是一件簡單的事情。我有一個分析XML和XSL文件的樣式表。基本上,它試圖檢測XML是否是樣式表:檢測XML文件是否包含特定命名空間
<xsl:if test="count(//xsl:template)!=0">
它確實檢測樣式表。但是,它具有XML文件的問題,它會生成「未定義的命名空間前綴 - 'xsl'」錯誤。 (在XmlSpy中,我正在處理的項目中出現類似錯誤。)
我做錯了什麼。有關如何改進此樣式表的任何建議?
一些額外的信息:這是一個的意思分析其他的XML文件,無論它們包含內容的樣式表。它應該能夠自我改變,並且做得很好。轉換其他(普通)樣式表也沒有問題。當我嘗試轉換常規的XML文件時,問題就到了。然而並非所有的XML文件...
事實證明,錯誤是別的。我試圖轉換的XML文件包含處理指令。這一個:<?xml-stylesheet href="..\MyStylesheet.xsl" type="text/xsl"?>
我現在的問題是,當我處理包含此PI的XML文件時,XSLT開始報告有關未定義名稱空間前綴的錯誤。那麼,我該如何告訴XSLT處理器忽略這個處理指令呢?
亞歷克斯:這是一個奇怪的錯誤報告。如果查詢沒有XSLT名稱空間的XML樹,它應該導致一個空的節點集,而不是一個錯誤。 – 2010-10-01 12:11:07
好問題(+1)。查看我的答案以獲得詳細的分析和簡短而全面的解決方案。 – 2010-10-01 13:05:30