2008-09-12 38 views
33

có cách nào dễ dàng chuyển HTML thành đánh dấu bằng JAVA không?HTML để Đánh dấu bằng Java

Tôi hiện đang sử dụng thư viện Java MarkdownJ để chuyển đổi đánh dấu thành html.

import com.petebevin.markdown.MarkdownProcessor; 
... 
public static String getHTML(String markdown) { 
    MarkdownProcessor markdown_processor = new MarkdownProcessor(); 
    return markdown_processor.markdown(markdown); 
} 

public static String getMarkdown(String html) { 
/* TODO Ask stackoverflow */ 
} 

Trả lời

38

Sử dụng số XSLT này.

Nếu bạn cần giúp đỡ sử dụng XSLT và Java đây là một đoạn mã:

public static void main(String[] args) throws Exception { 

     File xsltFile = new File("mardownXSLT.xslt"); 

     Source xmlSource = new StreamSource(new StringReader(theHTML)); 
     Source xsltSource = new StreamSource(xsltFile); 

     TransformerFactory transFact = 
       TransformerFactory.newInstance(); 
     Transformer trans = transFact.newTransformer(xsltSource); 

     StringWriter result = new StringWriter(); 
     trans.transform(xmlSource, new StreamResult(result)); 
    } 
+2

+1, điều đó thật tuyệt vời. –

+4

QUAN TRỌNG: XSLT này được phân phối theo giấy phép CC-share, có nghĩa là: "Nếu bạn [...] xây dựng dựa trên công việc này, bạn có thể phân phối tác phẩm kết quả chỉ theo cùng một giấy phép tương tự với giấy phép này" –

+1

@ cx42net - nó không quan trọng)) Ở nhiều nước CC-share-alike giấy phép không có bất kỳ quyền lực pháp lý AT ALL;) – shabunc

2

tôi đang làm việc trên cùng một vấn đề, và thử nghiệm với một vài kỹ thuật khác nhau.

Câu trả lời ở trên có thể hoạt động. Bạn có thể sử dụng jTidy library để thực hiện công việc dọn dẹp ban đầu và chuyển đổi từ HTML sang XHTML. Bạn sử dụng liên kết XSLT stylesheet được liên kết ở trên.

Rất tiếc, không có thư viện nào có chức năng một cửa để thực hiện việc này trong Java. Bạn có thể thử sử dụng kịch bản Python html2text với Jython, nhưng tôi chưa thử điều này!

1

nếu bạn đang sử dụng trình soạn WMD và muốn lấy mã markdown ở phía máy chủ, chỉ cần sử dụng các tùy chọn trước khi tải wmd.js kịch bản:

wmd_options = { 
     // format sent to the server. can also be "HTML" 
     output: "Markdown", 

     // line wrapping length for lists, blockquotes, etc. 
     lineLength: 40, 

     // toolbar buttons. Undo and redo get appended automatically. 
     buttons: "bold italic | link blockquote code image | ol ul heading hr", 

     // option to automatically add WMD to the first textarea found. 
     autostart: true 
    }; 
Các vấn đề liên quan