我有一個Java servlet生成xml,用xslt樣式表翻譯它,然後顯示生成的HTML。這是我第一次使用xslt。什麼是調試xslt的好方法?我有(或可以獲取)一些示例XML文件來應用轉換。但是我並不確定語法,所以會給我語法警告的東西會很棒。用於調試的工具xslt
回答
當您嘗試使用無效的XSLT時,Xalan應該爲您提供有用的錯誤。如果您想要更強大的功能,則用於調試XSLT的一個選項是Oxygen XML Editor。它與Xalan和Saxon轉換引擎集成在一起。其調試模式允許您設置斷點,監視變量,並提供其他基本的調試功能。它可能是你想要的矯枉過正,但它非常好。
學習時,一個語法高亮編輯器通常是足以讓我(當然與裁判文檔上的另一個窗口中打開。
凱特是XML和XSLT一個偉大的編輯。
我曾經到編寫和調試一些複雜的XSLT文檔,當時我通過輸出大量中間值來使用調試過的「printf-style」,後來我發現有一種更簡單的方法來實現這一點 - Altova XMLSpy,它允許你單獨通過風格應用程序的步驟,觀看中間輸出等等。
VS8也有XSLT調試支持。看到這裏:http://msdn.microsoft.com/en-us/library/ms255605(VS.80).aspx
我還應該提到,XMLSpy和VS8都有語法突出顯示。如果您在XML中指定了XSD,VS8甚至會爲您提供智能感知!
不幸的是,我現在無法證明我的上司花費了我有限的使用費用。如果這變成了一個較長期的項目,我可能會得到一個或另一個。 – 2008-10-20 14:27:15
我幾乎每天都在使用XSLT,並且已經有六七年的時間了。
我發現XSLT的「printf-style」調試非常有效,我從來沒有從使用任何其他調試機制(我試過XMLSpy和Visual Studio)中獲益。有時候我會想要檢查一個變量的值,並建立輸出它的邏輯是一件麻煩事。但這很少見。
這可能是因爲擁有一個調試器會使得XSLT更容易學習學習。 (任何必須)
如果要執行「printf-style」調試並且不想用調試數據丟棄輸出,請使用<xsl:message>
標籤在處理樣式表時生成調試輸出。使用terminate="yes"
屬性,您甚至可以暫停樣式表的處理。
PHPStorm和其他IntelliJ IDE(商業)支持debugging XSLT。您可以逐步瀏覽文檔並逐步查看生成的輸出。
Microsoft Visual Studio也是一款用於xslt調試器的強大工具。但是您必須安裝
- 1. 用於調試makefile的工具
- 2. 用於調試WCF服務的工具
- 3. 用於調試的java工具
- 4. 對於免費XSLT工具的建議
- 5. WebGL調試工具?
- 6. Webkit調試工具
- 7. Mathematica調試工具
- 8. Java調試工具
- 9. javascript調試工具
- 10. StatET調試工具
- 11. 用於調試的工具在Java應用程序中掛起
- 12. Codeigniter的調試工具
- 13. 調試VerifyError的好工具?
- 14. 調試SOAP UI工具調用
- 15. 用於Windows的Microsoft調試工具中的符號?
- 16. 用於調試JavaScript中的內存泄漏的工具
- 17. Android調試不會工作XSLT錯誤
- 18. 用於多處理的python調試工具
- 19. 用於調試linux內核的工具是什麼?
- 20. 什麼是可用於調試CSS的工具?
- 21. 用於調試存儲過程的獨立工具
- 22. 用於Firefox調試工具的多行模式?
- 23. 用於調試休眠配置的工具
- 24. 用於調試遞歸代碼的可視化工具
- 25. 用於JavaScript/xulrunner開發的最佳調試工具
- 26. 用於xCode的調試可視化工具
- 27. 用於visual studio的內存調試工具
- 28. 用於Java的調試查看器工具
- 29. 用於在Java中調試按位運算的工具
- 30. 用於Firefox擴展開發的調試工具
語法高亮顯示是有幫助的。我現在在我的服務器上使用VI,因爲我沒有完成設置我的開發環境。但我真正想要的是能夠通過處理器運行xml和xslt,並獲取錯誤消息或其他內容,而無需運行整個servlet進程。 – 2008-10-20 14:07:07
嘗試命令行xslt處理器;我使用xalan,但任何人都會這樣做。我確定vi可以運行它,如果它甚至可以像編譯器一樣解析錯誤輸出,它不會被超過。 – Javier 2008-10-20 14:31:11
哦,你絕對想要在你的IDE中執行轉換並查看它們的輸出。我不認爲調試器是非常重要的,但這是至關重要的。 – 2008-10-21 01:02:36