@已解決
我已經創建的兩個子問題已經解決了(分裂這一個耶!),所以這個解決了。由於他的答案是最接近的,我會將複選標記授予samjudson。但對於實際的工作解決方案,請參閱下面的子問題;我實施的解決方案和檢查的答案。Evernote導出格式(ENEX)爲HTML,包括圖片?
@Deprecated
我分裂了這個問題分成兩個獨立的問題,因爲這是一個相當複雜的問題。雖然答案仍然很受歡迎。
的suquestions是:
- XSLT: Convert base64 data into image files
- XSLT: Obtaining or matching hashes for base64 encoded data
嗨,只是想知道如果任何人在這裏已在轉換Evernote's export format任何成功,這是XML,對HTML包括圖片。我知道印象筆記有一個導出到HTML功能的功能,但是我最終想用它做更多的花哨的東西。
我已成功地完成獲取文本僅使用以下XSLT:
示例代碼刪除
參見實施的解決方案的孩子的問題。
但是,a.t.m.這只是忽略任何圖片,這是我需要幫助的地方。
絆腳石#1:Evernote的存儲其照片上的GIF或PNG,並出口時,直接在XML使用什麼似乎使用base64(我可能是錯的),這些嵌入的GIF PNG圖像&。我需要能夠重新構圖。如果您在文本編輯器中打開該文件,請查找**//note/resource/data**
中的大量數據塊。例如(縮進手動添加):
<resource>
<data encoding="base64">
R0lGODlhEAAQAPMAMcDAwP/crv/erbigfVdLOyslHQAAAAECAwECAwECAwECAwECAwECAwECAwEC
AwECAyH/C01TT0ZGSUNFOS4wGAAAAAxtc09QTVNPRkZJQ0U5LjAHgfNAGQAh/wtNU09GRklDRTku
MBUAAAAJcEhZcwAACxMAAAsTAQCanBgAIf8LTVNPRkZJQ0U5LjATAAAAB3RJTUUH1AkWBTYSQXe8
fQAh+QQBAAAAACwAAAAAEAAQAAADSQhgpv7OlDGYstCIMqsZAXYJJEdRQRWRrHk2I9t28CLfX63d
ZEXovJ7htwr6dIQB7/hgJGXMzFApOBYgl6n1il0Mv5xuhBEGJAAAOw==
</data>
<mime>image/gif</mime>
<resource-attributes>
<file-name>clip_image001.gif</file-name>
</resource-attributes>
</resource>
絆腳石#2:Evernote的存儲資源節點下每幅圖片的文件名
**//note/resource/resource-attributes/file-name**
然而,在實際的音符,其中它是指圖片,它引用的圖片不是由文件名,但其哈希,例如:
<en-media hash="4aaafc3e14314027bb1d89cf7d59a06c" type="image/gif" border="0" width="16" height="16" alt="Alt Text"/>
任何人都可以闡明如何處理的(Base64)編碼中的XML二進制數據的一些光?
編輯
我從評論瞭解&答案是普通OL」 XSLT不會得到處理完成圖像的工作。我使用的XSLT處理器是Xalan,但是,如果這不足以用於圖像處理或base64的目的,那麼我建議您這樣做!
此外,根據要求,這裏是一個示例Evernote導出文件。上面的代碼片段僅僅是這個選擇的部分。我已將其刪除,使其只包含一個音符,並將其中的大部分文本編輯出來,併爲清晰起見添加縮進。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE en-export SYSTEM "http://xml.evernote.com/pub/evernote-export.dtd">
<en-export export-date="20091029T063411Z" application="Evernote/Windows" version="3.0">
<note>
<title>A title here</title>
<content><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml.dtd">
<en-note bgcolor="#FFFFFF">
<p>Some text here (followed by the picture)
<p><en-media hash="4aaafc3e14314027bb1d89cf7d59a06c" type="image/gif" border="0" width="16" height="16" alt="A picture"/></p>
<p>Some more text here (preceded by the picture)
</en-note>
]]></content>
<created>20090925T063154Z</created>
<note-attributes>
<author/>
</note-attributes>
<resource>
<data encoding="base64">
R0lGODlhEAAQAPMAMcDAwP/crv/erbigfVdLOyslHQAAAAECAwECAwECAwECAwECAwECAwECAwEC
AwECAyH/C01TT0ZGSUNFOS4wGAAAAAxtc09QTVNPRkZJQ0U5LjAHgfNAGQAh/wtNU09GRklDRTku
MBUAAAAJcEhZcwAACxMAAAsTAQCanBgAIf8LTVNPRkZJQ0U5LjATAAAAB3RJTUUH1AkWBTYSQXe8
fQAh+QQBAAAAACwAAAAAEAAQAAADSQhgpv7OlDGYstCIMqsZAXYJJEdRQRWRrHk2I9t28CLfX63d
ZEXovJ7htwr6dIQB7/hgJGXMzFApOBYgl6n1il0Mv5xuhBEGJAAAOw==
</data>
<mime>image/gif</mime>
<resource-attributes>
<file-name>clip_image001.gif</file-name>
</resource-attributes>
</resource>
</note>
</en-export>
而這需要轉換成這樣:
<html>
<body>
<p>Some text here (followed by the picture)
<p><img src="clip_image001.gif" border="0" width="16" height="16" alt="A picture"/></p>
<p>Some more text here (preceded by the picture)
</body>
</html>
隨着文件clip_image001.gif
正在生成並保存。
順便說一句 - 沒有必要寫'',只需編寫''。另外,不要寫'',而是''。你的樣式表會更短。除非你發佈一些XML示例,否則很難提供幫助。發佈你所處的環境也很有幫助,因爲vanilla XSLT不會執行Base64編碼的字符串。 ' –
Tomalak
2009-11-03 14:48:52
+0
A
2
+0
+0
0
+0
相關問題
-
1. 導出html格式爲pdf
-
2. 用html格式查看圖片時的圖片空間格式爲html
-
3. jQuery導出到Excel,包括第html行
-
4. 將圖表導出爲PDF格式圖片
-
5. 以HTML格式導出iReport圖表
-
6. django將圖像和文本導出爲html格式爲pdf
-
7. 以HTML格式導出RDLC
-
8. 導出Excel與頭包括圖像
-
9. MySQL表格導出爲HTML
-
10. 將表導出爲excel,包括宏
-
11. 導出範圍爲圖片
-
12. 將SCSS地圖導出爲json格式?
-
13. 將Dicom圖像導出爲tif格式
-
14. 導出或保存html源代碼,包括iFrame的html
-
15. 將html導出爲excel - excel格式與html中指定的格式不同
-
16. SSRS2008:LocalReport導出爲HTML /片段
-
17. 包括爲共同的HTML
-
18. 如何將html嵌套表格導出爲pdf格式
-
19. 如何將HTML表格導出爲Excel格式?
-
20. 我無法將html表格導出爲Excel xls格式
-
21. 將HTML表格導出爲MS Excel格式使用jQuery
-
22. VB.net導出爲PDF格式
-
23. C#導出爲Excel格式
-
24. SSRS導出爲CSV格式
-
25. 包括SharePoint /頁/導入/導出
-
26. 以HTML格式上傳2張圖片
-
27. 圖片出格
-
28. UIBlurEffect視圖不包括背景圖片
-
29. Knockout - 使用格式化導出html表
-
30. HTML格式導出到Word文檔
最新問題
-
1. 選擇所有沒有h標籤的鏈接
-
2. 配置文件給我值隨意類
-
3. nginx用URL重寫部分url? mark
-
4. Python Web Scrape Cycle選項卡
-
5. 安全的字符串輸出陣營生態系統
-
6. 再次按下Drawtoggle後關閉抽屜
-
7. 在上傳laravel之前的圖像裁剪
-
8. 嘗試在Roku通道中斷開連接會引發錯誤
-
9. 如何發佈到外部IP?
-
10. 生產基於優先級列表
-
1. 導出html格式爲pdf
-
2. 用html格式查看圖片時的圖片空間格式爲html
-
3. jQuery導出到Excel,包括第html行
-
4. 將圖表導出爲PDF格式圖片
-
5. 以HTML格式導出iReport圖表
-
6. django將圖像和文本導出爲html格式爲pdf
-
7. 以HTML格式導出RDLC
-
8. 導出Excel與頭包括圖像
-
9. MySQL表格導出爲HTML
-
10. 將表導出爲excel,包括宏
嗨,Tomolak,謝謝你的建議。我樂於接受使用哪種XSLT處理器的建議。我還在我的原始問題中編輯了一個示例XML文件。 – bguiz 2009-11-03 23:19:32
回答
有一個新的數據URI規範http://en.wikipedia.org/wiki/Data_URI_scheme這可能是一些幫助,如果你只是想支持現代瀏覽器,並且你的圖像很小(例如IE8只支持< 32K圖像)。
除此之外,您唯一可以做的其他事情就是使用一些外部腳本將圖像數據導出到文件並使用它們。這很大程度上取決於您使用的XSLT處理器。
來源
2009-11-02 16:26:41 samjudson
嗨,山姆,謝謝你的建議。但是,我的Evernote文檔主要是各種網站的註釋剪輯,它們確實包含大於32k的圖像,所以我不認爲數據URI方案會在這裏起作用(儘管看起來非常相似)。 請推薦您使用的XSLT處理器和外部腳本,因爲我對環境非常敏感。 – bguiz 2009-11-03 23:25:21
親自在C#中處理它們是因爲我是.Net開發人員,但是您可以使用Java(在這種情況下,幾乎有無限的XSLT處理器 - Saxon是最好的IMHO)。但是,每個處理器都有自己的實現擴展方法的方式。 – samjudson 2009-11-10 14:46:03
它對此問題存在純粹的XSLT答案; look at this page
來源
2009-11-06 08:41:50 Erlock
是的,我已經通過該網站copomer之前,不幸的是,它使用base64編碼字符串(而不是像圖像二進制數據)。另外,我需要一種實際生成圖像的方式(寫入文件)。 – bguiz 2009-11-06 12:12:34
相關問題