任何人都可以幫助我進行XSL文件驗證?我不想驗證它的開始/關閉標籤,但「內部屬性」。 檢查: 我的XSL文件包含行<td><xsl:value-of select="year"/></td>
我需要檢查這一個的語法錯誤,如<td><xsl:vae-of select="year"/></td>
。如何驗證XSL文件?
有什麼辦法如何用JavaScript或jQuery做到這一點?
任何人都可以幫助我進行XSL文件驗證?我不想驗證它的開始/關閉標籤,但「內部屬性」。 檢查: 我的XSL文件包含行<td><xsl:value-of select="year"/></td>
我需要檢查這一個的語法錯誤,如<td><xsl:vae-of select="year"/></td>
。如何驗證XSL文件?
有什麼辦法如何用JavaScript或jQuery做到這一點?
XSLT處理器檢查樣式表代碼,因此在Mozilla瀏覽器中,您可以將樣式表代碼傳遞給importStylesheet
對象的importStylesheet
方法,例如,
var proc = new XSLTProcessor();
var sheet = new DOMParser().parseFromString([
'<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">',
'<xsl:template match="/"><xsl:vae-of select="year"/></xsl:template>',
'</xsl:stylesheet>'
].join('\n'), 'application/xml');
try {
proc.importStylesheet(sheet);
}
catch(e) {
// handle error here e.g.
console.log(e.message);
}
outputs「Component returned failure code:0x80600001 [nsIXSLTProcessor.importStylesheet]」。
但請注意,XSLT 1.0處理器應該在forwards compatible模式下處理大於1.0版本的樣式表代碼,並且如果您想驗證用戶輸入代碼爲XSLT 1.0,則需要確保它具有version="1.0"
可以捕獲XSLT語言版本1.0的任何錯誤。
當然,這個錯誤信息對於識別代碼中的錯誤並不是很有幫助。
就是這樣!謝謝:) 我會盡力找到一些有關錯誤信息的信息,但這正是我期待的! – Martin
我認爲使用未在其名稱空間中定義的元素將被XML驗證捕獲。所以也許這是你的答案:https://stackoverflow.com/questions/6334119/check-for-xml-errors-using-javascript – minopret
它可能是,但只是部分... 我會顯示消息什麼是錯的。在這種情況下,像錯誤的參數「vae-of」。我知道它存在,但我找不到它 – Martin